java之Collection类

 1 @SuppressWarnings({ "unchecked", "rawtypes" })   //注解
 2 public class Demo1_Collection {
 3     /*
 4      * 引用数据类型数组中存的都是对象的地址值,而非对象中的属性值
 5      *A:集合和数组的区别:
 6      * 区别1:
 7      *  数组可以存储基本数据类型(值),也可以存储引用数据类型(地址值)
 8      *  集合只能存储引用数据类型,但是也可以存储基本数据类型,只不过是存储是会自动装箱变成对象
 9      * 区别2:
10      *  数组的长度是固定的,不能自动增长
11      *  集合的长度是可变的,可以根据元素的增加而增加
12      * B:数组和集合何时使用对应的哪种:
13      *   1.当元素个数固定的时候推荐使用数组;固定元素个数的时候用数组效率更高,因为它是上来就创建好了
14      *   2.当元素个数变化时候推荐使用集合
15      * C:Collection中的成员方法
16      *      boolean add(Object c)           增加元素
17      *   boolean remove(Object c)        移除元素
18      *   void clear()                    清空集合
19      *   boolean contains(Object o)      判断是否包含某个元素
20      *   boolean isEmpty()               判断集合是否为空
21      *   int size()                      获取元素的个数
22      * D:注意
23      *   add方法List集合一直都返回true,是因为List集合可以存储重复元素,但是如果是Set集合存储重复元素时是会返回false的
24      *   ArrayList的父类的父类重写了toString方法,所以打印对象时输出的结果不是Object类中toString的结果
25      *   
26      */
27     public static void main(String[] args) {
28         
29         //demo1();
30         demo2();
31 
32     }
33 
34     public static void demo2() {
35         Collection c = new ArrayList();
36         c.add(new String("abc"));
37         c.add("b");
38         c.add("c");
39         c.add("d");
40         c.add(new Student("adda", 19));
41         System.out.println(c);   //[a, b, c, d]
42         c.remove("c");
43         System.out.println(c);   //[a, b, d]
44         System.out.println(c.contains("a"));   //true
45         System.out.println(c.isEmpty());       //false
46         System.out.println(c.size());          //3
47         c.clear();
48         System.out.println(c);   //[]
49     }
50 
51     public static void demo1() {
52         Collection c = new ArrayList();
53         boolean b = c.add("abc");
54         c.add(true);             //这里会自动装箱将基本数据类型true转换成包装类型存入
55         c.add(100);              //同上,会自动装箱
56         System.out.println(b);
57         System.out.println(c);
58     }
59 }
 1 public class Demo2_Collection {
 2 
 3     /*
 4      * a. 集合的遍历,其实就是以此获取集合中的元素
 5      * b. 把集合转换成数组,就可以事项集合的遍历  
 6      *    toArray()
 7      * c.注意
 8      *    自定义类中需要重写toString方法,否则打印出的对象c是打印的自定义类的地址
 9      */
10     public static void main(String[] args) {
11         //demo1();
12         Collection c = new ArrayList();
13         c.add(new Student("lisi", 18));
14         c.add(new Student("zhangsan", 16));
15         System.out.println(c);
16         Object[] arr = c.toArray();
17         for (int i = 0; i < arr.length; i++) {
18             System.out.println(arr[i]);
19             Student s = (Student) arr[i];         //向下转型
20             System.out.println(s.getName() + "...." + s.getAge());
21         }
22 
23     }
24 
25     public static void demo1() {
26         Collection c = new ArrayList();
27         c.add("a");
28         c.add("b");
29         Object[] arr = c.toArray();       //将集合转换成数组
30         for (int i = 0; i < arr.length; i++) {
31             System.out.println(arr[i]);
32         }
33     }
34 
35 }
  1 public class Demo3_CollectionAll {
  2 
  3     /*
  4      * all相关的方法
  5      *         boolean addAll(Collection c)      
  6      *         boolean removeAll(Collection c)     实质删除的是两个集合的交集
  7      *         boolean containsAll(Collection c)   判断c中的所有元素是否都在调用集合中存在
  8      *         boolean retainAll(Collection c)     取交集
  9      */
 10     public static void main(String[] args) {
 11 
 12         //demo1();
 13         //demo2();
 14         //demo3();
 15         Collection c1 = new ArrayList();
 16         c1.add("a");
 17         c1.add("b");
 18         c1.add("c");
 19         c1.add("d");
 20         
 21         /*Collection c2 = new ArrayList();
 22         c2.add("a");
 23         c2.add("b");
 24         c2.add("z");
 25         boolean b = c1.retainAll(c2);
 26         System.out.println(b);          //true  
 27         System.out.println(c1);         //[a, b]
 28         
 29         Collection c3 = new ArrayList();
 30         c3.add("aa");
 31         c3.add("bb");
 32         boolean b2 = c1.retainAll(c3);
 33         System.out.println(b2);           //true
 34         System.out.println(c1);           //[]
 35 */        
 36         //看调用集合是否改变(即交集是否和调用集合相同),不变则为false,改变则为true
 37         Collection c4 = new ArrayList();
 38         c4.add("a");
 39         c4.add("b");
 40         c4.add("c");
 41         c4.add("d");
 42         boolean b3 = c1.retainAll(c4);
 43         System.out.println(b3);           //false
 44         System.out.println(c1);           //[a, b, c, d]
 45         
 46         Collection c5 = new ArrayList();
 47         c5.add("a");
 48         c5.add("b");
 49         c5.add("c");
 50         c5.add("f");
 51         c5.add("e");
 52         boolean b4 = c1.retainAll(c5);
 53         System.out.println(b4);           //true
 54         System.out.println(c1);           //[a, b, c]
 55         
 56         
 57     }
 58 
 59     public static void demo3() {
 60         Collection c1 = new ArrayList();
 61         c1.add("a");
 62         c1.add("b");
 63         c1.add("c");
 64         c1.add("d");
 65         
 66         Collection c2 = new ArrayList();
 67         c2.add("a");
 68         c2.add("b");
 69         c2.add("z");
 70         boolean b = c1.containsAll(c2);
 71         System.out.println(b);           //false
 72         
 73         Collection c3 = new ArrayList();
 74         c3.add("a");
 75         c3.add("b");
 76         boolean b2 = c1.containsAll(c3);
 77         System.out.println(b2);           //true
 78     }
 79 
 80     public static void demo2() {
 81         Collection c1 = new ArrayList();
 82         c1.add("a");
 83         c1.add("b");
 84         c1.add("c");
 85         c1.add("d");
 86         
 87         Collection c2 = new ArrayList();
 88         c2.add("a");
 89         c2.add("b");
 90         c2.add("z");
 91         boolean b = c1.removeAll(c2);
 92         System.out.println(b);
 93         System.out.println(c1);     //[c, d]
 94     }
 95 
 96     public static void demo1() {
 97         Collection c1 = new ArrayList();
 98         c1.add("a");
 99         c1.add("b");
100         c1.add("c");
101         c1.add("d");
102         
103         Collection c2 = new ArrayList();
104         c2.add("a");
105         c2.add("b");
106         
107         c1.addAll(c2);               //会将c2当做一个对象添加到c1中
108         System.out.println(c1);      //[a, b, c, d, a, b]
109     }
110 
111 }

猜你喜欢

转载自www.cnblogs.com/jiangjunwei/p/9206920.html