Java之路---Day15(Collection类)

2019-11-01-22:09:09

目录

  1.Collection集合的概念

  2.Collection集合常用方法

  3.Iterator迭代器

  4.增强for

  5.Collection常用工具类


Collection集合的概念

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

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

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

扫描二维码关注公众号,回复: 7715831 查看本文章

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

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 }

猜你喜欢

转载自www.cnblogs.com/hpcz190911/p/11780327.html
今日推荐