标签:返回 contains lis 获取 自动增长 不能 name tostring str
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 }
标签:返回 contains lis 获取 自动增长 不能 name tostring str
原文地址:https://www.cnblogs.com/jiangjunwei/p/9206920.html