Java集合框架 - 认识Collection接口
 

Java集合框架01:Collection接口


什么是Colleciton接口?

Collection是一个高度封装的集合接口,它提供了所有集合要实现的默认方法接口


关系图

那么,Collection究竟提供了那些需要子类实现的方法接口呢?我们该如何使用?

通过代码学习--


1
package com.suffle.集合框架Collection; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Collection; 6 import java.util.Iterator; 7 import java.util.NoSuchElementException; 8 9 //Collection是所有集合的顶层接口 10 public class Main { 11 12 public static void main(String[] args) { 13 14 Collection<String> collection = new ArrayList<>(); 15 16 // - - - - - - - - - - 添加功能- - - - - - - - - - // 17 18 // 1、添加一个 add 19 // 返回类型:boolean 20 // 某些集合不允许添加重复元素,可能会导致返回false 21 22 collection.add("小明"); 23 collection.add("小红"); 24 collection.add("李雷"); 25 collection.add("韩梅梅"); 26 System.out.println("添加了4个元素:" + collection); 27 // - - 控制台输出:添加了4个元素:[小明, 小红, 李雷, 韩梅梅] 28 29 // 2、添加集合 addAll 30 // 返回类型:boolean 31 Collection<String> new_Collection = new ArrayList<>(); 32 new_Collection.add("大炮"); 33 new_Collection.add("阿飞"); 34 collection.addAll(new_Collection);// 增加一堆 35 System.out.println("添加目标集合:" + collection); 36 37 // - - - - - - - - - - 删除功能- - - - - - - - - - // 38 39 // 1、删除指定元素 remove 40 // 返回类型:boolean ---如果要删除的元素不存在,会返回false。 41 collection.remove("小红"); 42 System.out.println("删除 小红:" + collection); 43 System.out.println("试图删除集合中不存在的元素:" + collection.remove("奥特曼")); 44 45 // 2、删除某些元素 removeAll 46 collection.removeAll(new_Collection); 47 System.out.println("删除了一些元素:" + collection); 48 49 // 50 // - removeAll【注意】1、不要用成remove,否则会没有效果。如下: 51 collection.addAll(new_Collection); 52 System.out.println("错用成了remove方法: 返回:" + collection.remove(new_Collection) + " 集合:" + collection); 53 54 // - removeAll【注意】2、如果参数集合不包含操作集合中的任何元素,也会返回false 55 Collection<String> third_Collection = new ArrayList<>(); 56 third_Collection.add("杰克"); 57 third_Collection.add("赛文"); 58 System.out.println("参数集合不包含操作集合中的任何元素 - 返回:"+collection.removeAll(third_Collection)+" 集合元素:"+collection); 59 60 // - removeAll【注意】3、参数集合既包含目标集合的元素,又包含操作集合以外的元素,会删除交集,返回true。 61 third_Collection.add("李雷"); 62 third_Collection.add("韩梅梅"); 63 System.out.println("参数集合:"+third_Collection); 64 System.out.println("操作集合:"+collection); 65 System.out.println("结果 - 返回值:"+collection.removeAll(third_Collection)+" "+collection); 66 67 // - removeAll【注意】4、如果操作集合为空,删了个寂寞,返回false 68 Collection<String> emptyCollection =new ArrayList<>(); 69 System.out.println("removeAll【注意】4 参数集合是空的 -结果"+collection.removeAll(emptyCollection)+" "+collection); 70 71 //3、保留某些元素 retainAll 72 collection.addAll(third_Collection); 73 System.out.println("操作集合:"+collection); 74 System.out.println(("参数集合:"+new_Collection)); 75 Collection<String> tmp = new ArrayList<>(collection);//保存一个备份,方便恢复 76 System.out.println("结果 - 返回值:"+collection.retainAll(new_Collection)+" "+collection); 77 collection.addAll(tmp);//恢复 78 //- retainAll【注意】 1、保留交集 79 collection.remove("李雷"); 80 collection.remove("韩梅梅"); 81 System.out.println("操作集合:"+collection); 82 System.out.println(("参数集合:"+third_Collection)); 83 System.out.println("结果 - 返回值:"+collection.retainAll(third_Collection)+" "+collection); 84 //- retainAll【注意】2、如果参数集合是空的,会返回true,并且清空操作集合 85 System.out.println("参数集合是空的 -结果"+collection.retainAll(emptyCollection)+" "+collection); 86 //- retainAll【注意】3、如果参数集合不为空,但不存在交集: 返回true,清空集合 87 collection.addAll(tmp); 88 System.out.println("操作集合 "+collection); 89 Collection<String> fourth_Collection = new ArrayList<>(); 90 fourth_Collection.add("迪迦"); 91 System.out.println("参数集合:"+fourth_Collection); 92 System.out.println("保留交集却不存在交集: 结果 - 返回值"+collection.retainAll(fourth_Collection)+" "+collection); 93 //- retainAll【注意】4、操作集合与参数集合完全一致,全TM保留了:返回false(因为操作集合没有因为这次操作而发生改变) 94 collection.addAll(tmp); 95 System.out.println("完全一致:"+collection.retainAll(collection)+" "+collection); 96 97 //4、清空集合 clear 返回类型void 98 collection.clear(); 99 System.out.println("清空集合:"+collection); 100 101 // - - - - - - - - - - 判断功能- - - - - - - - - - // 102 collection.addAll(tmp); 103 104 //1、判断是否包含指定元素 contain 105 System.out.println(collection); 106 System.out.println("是否包含小明:"+collection.contains("小明")); 107 System.out.println("是否包含小美:"+collection.contains("小美")); 108 109 //2、判断是否包含指定集合中的所有元素containsAll 110 System.out.println("1:"+collection); 111 System.out.println("2:"+new_Collection); 112 third_Collection.add("诺克萨斯之手"); 113 System.out.println("3:"+third_Collection); 114 System.out.println("4:"+fourth_Collection); 115 116 System.out.println("1:包含:"+collection.containsAll(new_Collection));//true 117 System.out.println("2:部分包含:"+collection.containsAll(third_Collection));//false 118 System.out.println("3:不包含:"+collection.containsAll(fourth_Collection));//false 119 System.out.println("4、空:"+collection.containsAll(emptyCollection));//true 120 121 //3、是否为空 122 System.out.println("非空:"+collection.isEmpty()); 123 System.out.println("空::"+emptyCollection.isEmpty()); 124 125 // - - - - - - - - - - 获取功能- - - - - - - - - - // 126 127 //1、获取长度 128 System.out.println(collection); 129 System.out.println("size:"+collection.size()); 130 131 //2、迭代器 iterator 方法 132 Iterator<String> iterator = collection.iterator(); 133 134 while (iterator.hasNext()) { 135 String string = (String) iterator.next(); 136 System.out.println(string); 137 } 138 // - iterator 获取 139 //此时迭代器处于容器的最后一位,不存在下一个元素,所以会出现异常 140 try { 141 System.out.println(iterator.next()); 142 } catch (NoSuchElementException e) { 143 System.out.println("出现异常,无法取得下一个元素"); 144 } 145 System.out.println("迭代器remove前:"+collection); 146 iterator.remove(); 147 System.out.println("迭代器remove后:"+collection); 148 System.out.println("迭代器remove前:"+third_Collection); 149 // - iterator 移除 150 Iterator<String> iterator2 = third_Collection.iterator(); 151 //此时迭代器尚未调用过next方法,处于-1号位置,直接remove会出现异常;如果此容器不支持remove操作也会返回false 152 iterator2.next(); 153 iterator2.remove(); 154 System.out.println("迭代器remove后:"+third_Collection); 155 156 //3、获取数组 toArray 157 //指定类型 158 String[] arr = collection.toArray(new String[0]); 159 System.out.println(Arrays.toString(arr)); 160 //Object类型 161 Object[] arr2=collection.toArray(); 162 System.out.println(Arrays.toString(arr2)); 163 164 } 165 166 }

 

posted on 2020-04-18 16:16  是风邪啊  阅读(165)  评论(0)    收藏  举报