Collection集合⽅法实例演⽰
Collection
概述
Collection 是所有容器集合的⽗类接⼝。Collection 表⽰⼀组对象,这些对象也称为 collection 的元素。⼀些 collection 允许有重复的元素,⽽另⼀些则不允许。⼀些 collection 是有序的,⽽另⼀些则是⽆序的。JDK 不提供此接⼝的任何直接实现:它提供更具体的⼦接⼝(如 Set 和 List)实现。此接⼝通常⽤来传递 collection,并在需要最⼤普遍性的地⽅操作这些 collection。
它还是两个常⽤集合List&Set的⽗类接⼝
下⾯介绍常⽤⽅法⽰例
源码概述
1public interface Collection<E> extends Iterable<E> {
2
3//返回集合中的元素数量,返回值为int类型
4int size();
5
6//判断集合元素是否为空,空则true,否则为false
7boolean isEmpty();
8
9//判断是否包含指定元素,包含为true,否则false
10boolean contains(Object o);
11
12//返回⼀个迭代器接⼝,可以进⾏遍历集合
13    Iterator<E> iterator();
14
15//将集合转换为⼀个数组对象
16    Object[] toArray();
17
18//利⽤参数⾥的泛型数组对应集合的长度,根据数组参数⽐较集合参数,长度超出则打印null
19    <T> T[] toArray(T[] a);
20
21//往集合⾥添加数据,参数为任意类型,返回值为布尔
22boolean add(E e);
23
24//根据参数指定元素,如果元素对应集合⾥的数据返回true,否则false
equals()方法
25boolean containsAll(Collection<?> c);
26
27//根据集合参数添加多个值
28boolean addAll(Collection<? extends E> c);
29
30//根据集合参数添加多个数据进⾏批量删除
31boolean removeAll(Collection<?> c);
32
33//根据Predicate过滤接⼝参数进⾏筛选
34default boolean removeIf(Predicate<? super E> filter) {
35        quireNonNull(filter);
36boolean removed = false;
37final Iterator<E> each = iterator();
38while (each.hasNext()) {
39if (())) {
40                ve();
41                removed = true;
42            }
43        }
44return removed;
45    }
46
47//清除集合⾥的元素
48void clear();
49
50//⽐较此 collection 与指定对象是否相等。
51boolean equals(Object o);
52
53//返回当前集合的哈希值
54int hashCode();
55
56//⽤于遍历和分割“源”元素的对象。
57    @Override
58default Spliterator<E> spliterator() {
59return Spliterators.spliterator(this, 0);
60    }
61
62//stream:返回⼀个stream流对象,可根据其⽅法操作集合
63default Stream<E> stream() {
64return StreamSupport.stream(spliterator(), false);
65    }
67//parallelStream:和stream⽅法⼀样,parallelStream⽀持顺序流,线程不安全
68default Stream<E> parallelStream() {
69return StreamSupport.stream(spliterator(), true);
70    }
71 }
代码演⽰
1  2
3 ```java
4//这⾥创建⼀个集合
5//由于这是个接⼝不能直接实例化,所以new实现类来演⽰
6 Collection<Object> collection = new ArrayList<>();
7 collection.add(233); //测试添加⼀条数据
8 ```
9
10 size⽅法
11
12 ```java
13int size = collection.size(); //获取集合的长度,也就是元素个数
14 System.out.println(size);//打印结果显⽰为1
15 ```
16
17 isEmpty⽅法
18
19 ```java
20boolean empty = collection.isEmpty();//判断集合元素是否为空,空则true,否则为false
21 System.out.println(empty);//集合为空打印为true
22 ```
23
24 contains⽅法
25
26 ```java
27boolean contains = ains("Bear");//判断是否包含指定元素,包含为true,否则false
28 System.out.println(contains);//不包含Bear字符,结果为false
29 ```
30
31  iterator
32
33 ```java
34  Iterator<Object> iterator = collection.iterator();// 返回⼀个迭代器接⼝
35while(iterator.hasNext()) { //使⽤迭代器遍历集合数据
36        Object next = ();
37        System.out.println(next);//遍历集合中的元素
38    }
39 ```
40
41  toArray:⽆参
42
43 ```java
44  Object[] objects = Array();//转换为⼀个数组
45    System.out.println(objects[0]);//获取打印第0号索引值
46for (Object object : objects) {//使⽤增强for循环遍历数组
47        System.out.println(object);
48    }
49 ```
50
51  toArray:有参
52
53 ```java
54//利⽤参数⾥的对象集合对应Collection集合的长度,根据参数指定返回长度,长度超出则打印null  55 Object[] toArray = Array(new Object[]{233,"bear"});
56for (Object o : toArray) {
57    System.out.println(o);//超出Collection集合元素的长度,只显⽰233
58 }
59 ```
60
61  add⽅法
62
63 ```java
64 System.out.println(collection.add(123));//往集合⾥添加数据,对象类型
65 System.out.println(collection.add("123"));
66 System.out.println(collection.add('F'));
67 ```
68
69  remove⽅法
70
71 ```java
72boolean remove = ve(233);//移除指定的元素
73 System.out.println(remove);//打印为布尔值
74 ```
75
76  containsAll⽅法
78 ```java
79 Collection<Object> obj = new ArrayList<>();
80 obj.add(233);
81boolean b = ainsAll(obj);//根据新集合参数对应初始集合⾥的数据,对应则返回true,否则false
82 System.out.println(b);//两个集合数据对应,返回为true
83 ```
84
85  addAll⽅法
86
87 ```java
88 Collection<Object> list = new ArrayList<>();//创建⼀个新集合
89 list.add(222);
90 list.add(233);
91boolean addAll = collection.addAll(list);//根据集合参数添加多个值
92 System.out.println(addAll);//返回为true
93 System.out.println(collection);//打印集合内容
94 ```
95
96  removeAll⽅法
97
98 ```java
99 Collection<Object> rem = new ArrayList<>();//创建⼀个新集合。批量移除集合元素
100 rem.add(233);//添加需要移除的元素
101boolean removeAll = veAll(rem); //removeAll:根据集合参数添加多个数据进⾏批量删除
102 System.out.println(removeAll);
103 ```
104
105  removeIf⽅法
106
107 ```java
108//需要创建⼀个Person实体类
109 Collection<Person> coo = new ArrayList<Person>();//创建⼀个新集合,泛型为Person对象
110 coo.add(new Person(18));//new⼀个匿名Person对象
111 coo.add(new Person(19));
veIf(new Predicate<Person>() {
113    @Override
114public boolean test(Person person) {  //重写Predicate接⼝的test⽅法
Age() >10; //筛选对象Person对象年龄⼤于10的数据
116    }
117 });
118 System.out.println(coo);//打印结果
119
120 -----------------------------------------------------------
121
122//lambda简便格式
veIf(
124    person -> Age() >10 //筛选对象Person对象年龄⼤于10的数据
125 );
126 System.out.println(coo);//打印过滤
127 ```
128
129  retainAll
130
131 ```java
132 Collection<Object> co = new ArrayList<>();
133 co.add(233);
134 co.add("Bear");//collection不存在这个值,所以不会打印
ainAll(co); //取得两个集合的交集,输出打印相同的数值
136 System.out.println(collection);
137 ```
138
139  clear⽅法
140
141 ```java
142//clear:清除集合所有数据
143 collection.clear();
144 System.out.println(collection);//清除过后则获取不到集合⾥的值
145 ```
146
147  equals⽅法
148
149 ```java
150 Collection<Object> objects = new ArrayList<>();
151 objects.add(399); //⽐较的内容
152 objects.add("Bear"); //⽐较的内容
153boolean equals = collection.equals(objects);//⽐较两个对象是否相同,返回值为布尔
154 System.out.println(equals);
155 ```
156
157  hashCode⽅法
158
159 ```java
162 System.out.println(Code);
163 ```
164
165  spliterator⽅法
166
167 ```java
168//spliterator:⽤于分割和遍历集合
169 Spliterator<Object> spliterator = co.spliterator();
170 System.out.println(spliterator.estimateSize());//获取集合的长度
171 spliterator.forEachRemaining(System.out::println);//遍历集合的数据
172 ```
173
174  stream⽅法
175
176 ```java
177//stream:返回⼀个stream流对象,可根据其⽅法操作集合
178 Stream<Object> stream = collection.stream();
179 stream.forEach(System.out::println);//使⽤forEach遍历集合元素
180 ```
181
182  parallelStream⽅法
183
184 ```java
185//parallelStream:和stream⽅法⼀样,parallelStream⽀持顺序流,线程不安全186 Stream<Object> parallelStream = collection.parallelStream();
187 parallelStream.forEach(System.out :: println);
188 ```

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。