Java之路---Day15(Collection类)

匿名 (未验证) 提交于 2019-12-02 21:53:32

2019-11-01-22:09:09

Ŀ¼

  1.Collection集合的概念

  2.Collection集合常用方法

  3.Iterator迭代器

  4.增强for

  5.Collection常用工具类


Collection集合的概念

  ●集合:集合是java中提供的一 种容器,可以用来存储多个数据。

  集合和数组既然都是容器,它们有啥区别呢?

    ●数组的长度是固定的。集合的长度是可变的。

    ●数组中存储的是同-类型的元素.可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

Collection集合常用方法

 1 package demosummary.collection;  2 /*  3    public boolean add(E e) :把给定的对象添加到当前集合中。  4   public void clear():清空集合中所有的元素。  5   public boolean remove(e e);把给定的对象在当前集合中删除。  6   public boolean contains(E e) ;判断当前集合中是否包含给定的对象。  7   public boolean isEmpty(): 判断当前集合是否为空。  8   public int size(): 返回集合中元素的个数。  9   public object[] toArray(): 把集合中的元素,存储到数组中。 10  */ 11 import java.util.ArrayList; 12 import java.util.Collection; 13  14 public class CollectionTest { 15     public static void main(String[] args) { 16  17         Collection<String> str = new ArrayList<>(); 18         /* 19             public boolean add(E e) :把给定的对象添加到当前集合中 20          */ 21         boolean b = str.add("张三"); 22 //        System.out.println(b);//true 23         str.add("李四"); 24         str.add("王五"); 25         str.add("钱六"); 26         str.add("赵七"); 27 //        System.out.println(str);//[张三, 李四, 王五, 钱六, 赵七] 28         /* 29             public boolean remove(e e);把给定的对象在当前集合中删除 30          */ 31  32 //        boolean b1 = str.remove("李四"); 33 //        System.out.println(b1);//true 34 //        System.out.println(str);//[张三, 王五, 钱六, 赵七] 35  36         /* 37           public boolean contains(E e) ;判断当前集合中是否包含给定的对象 38          */ 39         boolean b2 = str.contains("孙八"); 40         boolean b3 = str.contains("赵七"); 41         System.out.println(b2);//false 42         System.out.println(b3);//true 43  44         /* 45           public boolean isEmpty(): 判断当前集合是否为空。 46          */ 47  48         boolean b4 = str.isEmpty(); 49         System.out.println(b4);//false 50  51         /* 52           public int size(): 返回集合中元素的个数 53          */ 54         int b5 = str.size(); 55         System.out.println(b5);//5 56  57         /* 58           public object[] toArray(): 把集合中的元素,存储到数组中 59          */ 60         Object[] obj = str.toArray(); 61         System.out.println(obj[0]);//张三 62         for (Object o : obj) { 63             System.out.println(o); 64         } 65  66         /* 67           public void clear():清空集合中所有的元素 68          */ 69         str.clear(); 70         System.out.println(str);//[] 71     } 72 }

Iterator迭代器

  Iterator接口

    在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。

  迭代:

    即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

  Iterator接口的常用方法

    public E next() :返回迭代的下一个元素。
    public boolean hasNext() :如果仍有元素可以迭代,则返回true.

 1 package demosummary.collection;  2   3 import java.util.ArrayList;  4 import java.util.Collection;  5 import java.util.Iterator;  6   7 public class IteratorTest {  8     public static void main(String[] args) {  9         //创建一个集合 10         Collection<String> obj = new ArrayList<>(); 11         //往集合中添加元素 12         obj.add("德玛"); 13         obj.add("皇子"); 14         obj.add("德邦"); 15         obj.add("剑圣"); 16         //使用多态方式来创建实现类对象 17         Iterator<String> iter = obj.iterator(); 18         //使用while循环来迭代集合 19         while (iter.hasNext()){ 20             String next = iter.next();//使用迭代器原理 21             System.out.println(next); 22         } 23     } 24 }

增强for  

  增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性

  collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
  public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
  增强for循环:用来遍历集合和数组
  
格式:

    for(集合/数组的数据类型变量名:集合名/数组名){
      sout(变量名);

    }

 1 package demosummary.collection;  2   3 import java.util.ArrayList;  4 import java.util.Collection;  5 import java.util.Iterator;  6   7 public class IteratorTest {  8     public static void main(String[] args) {  9         //创建一个集合 10         Collection<String> obj = new ArrayList<>(); 11         //往集合中添加元素 12         obj.add("德玛"); 13         obj.add("皇子"); 14         obj.add("德邦"); 15         obj.add("剑圣"); 16         //使用多态方式来创建实现类对象 17         Iterator<String> iter = obj.iterator(); 18         //增强for 19         for (String str : obj) { 20             System.out.println(str); 21         } 22     } 23 }

Collection常用工具类

  java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
    public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
    public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。

 1 package demosummary.collection;  2   3 import java.util.ArrayList;  4 import java.util.Collection;  5 import java.util.Collections;  6   7 /*  8       public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。  9     public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。 10     public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 11     public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。 12  */ 13 public class CollectionTools { 14     public static void main(String[] args) { 15         ArrayList<String> obj = new ArrayList<>(); 16         //一开始学的添加元素的方法 17 //        obj.add("德玛"); 18 //        obj.add("皇子"); 19 //        obj.add("德邦"); 20 //        obj.add("剑圣"); 21  22         /* 23               public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。 24          */ 25  26         //用collection的方法来添加元素 27         Collections.addAll(obj,"德玛","皇子","德邦","剑圣"); 28         System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣] 29  30         /* 31             public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。 32          */ 33         Collections.shuffle(obj); 34         System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣] 35  36     } 37 }

    public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
    public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。

 1 package demosummary.collection;  2   3 import java.util.ArrayList;  4 import java.util.Collections;  5 import java.util.Comparator;  6   7 public class CollectionTools02 {  8     public static void main(String[] args) {  9         //创建一个集合对象 10         ArrayList<Integer> obj = new ArrayList<>(); 11         //使用collection方法添加元素 12         Collections.addAll(obj,4,3,2,1); 13         //  public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 14         //默认是升序 15         Collections.sort(obj); 16         System.out.println(obj);//[1, 2, 3, 4] 17  18         /* 19             public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。 20          */ 21         //创建一个集合对象 22         ArrayList<Person> obj01 = new ArrayList<>(); 23         //往集合添加元素 24         obj01.add(new Person("德玛",18)); 25         obj01.add(new Person("皇子",19)); 26         obj01.add(new Person("德邦",20)); 27         obj01.add(new Person("剑圣",18)); 28         //输出原来集合的排序 29         System.out.println(obj01); 30         //使用collection的方法按照指定规则排序 31         Collections.sort(obj01, new Comparator<Person>() { 32             @Override 33             public int compare(Person o1, Person o2) { 34                 //按照大小来排序 35                 int result = o1.getAge()-o2.getAge(); 36                 if (result==0){ 37                     result=o1.getName().charAt(0)-o2.getName().charAt(0); 38                 } 39                 return result; 40             } 41         }); 42         System.out.println(obj01); 43     } 44 }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!