Java是一門面向?qū)ο蟮恼Z言,那么我們寫程序的時候最經(jīng)常操作的便是對象了,為此,Java提供了一些專門用來處理對象的類庫,這些類庫的集合我們稱之為集合框架。Java集合工具包位于Java.util包下,包含了很多常用的數(shù)據(jù)結(jié)構(gòu),如數(shù)組、鏈表、棧、隊列、集合、哈希表等。學習Java集合框架下大致可以分為如下五個部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具類(Arrays、Collections)。
Java的集合類主要由兩個接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,這兩個接口又包含了一些接口或?qū)崿F(xiàn)類。
可以看到Collection并沒有直接實現(xiàn)類,而是提供更具體的子接口實現(xiàn)。通過查詢API,可以總結(jié)出Collection的基本功能。
1、添加
boolean add(E e):添加一個元素
boolean addAll(Collection<? extends E> c):添加一個集合的元素
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo1 { public static void main(String[] args) { Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類 collection1.add( "紅樓夢" ); collection1.add( "三國演義" ); System.out.println(collection1); Collection collection2 = new ArrayList(); collection2.add( "西游記" ); collection2.add( "水滸傳" ); collection1.add(collection2); System.out.println(collection1); } } |
輸出結(jié)果:
[紅樓夢, 三國演義]
[紅樓夢, 三國演義, [西游記, 水滸傳]]
2、刪除
void clear():清空集合中的所有元素
boolean remove(Object o):移除指定的元素
boolean removeAll(Collection<?> c):移除一個集合的元素
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo2 { public static void main(String[] args) { Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類 collection1.add( "紅樓夢" ); collection1.add( "三國演義" ); collection1.add( "西游記" ); collection1.add( "水滸傳" ); System.out.println( "初始狀態(tài):" + collection1); boolean b1 = collection1.remove( "紅樓夢" ); System.out.println( "是否移除了元素:" + b1); System.out.println( "移除一個元素:" + collection1); System.out.println(); Collection collection2 = new ArrayList(); collection2.add( "三國演義" ); collection2.add( "西游記" ); collection2.add( "平凡的世界" ); boolean b2 = collection1.removeAll(collection2); // 移除兩個集合的交集,只要有一個元素被移除了,就返回true System.out.println( "移除一個集合:" + collection1); System.out.println( "是否移除了元素:" + b2); System.out.println(); Collection collection3 = new ArrayList(); collection3.add( "平凡的世界" ); collection3.add( "圍城" ); boolean b3 = collection1.removeAll(collection3); // 移除兩個集合的交集,只要有一個元素被移除了,就返回true System.out.println( "移除一個集合:" + collection1); System.out.println( "是否移除了元素:" + b3); System.out.println(); collection1.clear(); System.out.println( "清除集合中的所有元素:" + collection1); } } |
輸出結(jié)果
初始狀態(tài):[紅樓夢, 三國演義, 西游記, 水滸傳]
是否移除了元素:true
移除一個元素:[三國演義, 西游記, 水滸傳]
移除一個集合:[水滸傳]
是否移除了元素:true
移除一個集合:[水滸傳]
是否移除了元素:false
清除集合中的所有元素:[]
3、判斷
boolean contains(Object o):判斷集合是否包含指定元素
boolean containsAll(Collection<?> c):判斷集合是否包含指定的集合元素
boolean isEmpty():判斷集合是否為空
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo3 { public static void main(String[] args) { Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類 collection1.add( "紅樓夢" ); collection1.add( "三國演義" ); collection1.add( "西游記" ); collection1.add( "水滸傳" ); System.out.println( "是否包含紅樓夢:" + collection1.contains( "紅樓夢" )); Collection collection2 = new ArrayList(); collection2.add( "三國演義" ); collection2.add( "西游記" ); collection2.add( "平凡的世界" ); System.out.println( "是否包含一個集合中元素:" + collection1.containsAll(collection2)); // 包含所有才包含 System.out.println( "集合是否為空:" + collection1.isEmpty()); } } |
輸出結(jié)果
是否包含紅樓夢:true
是否包含一個集合中元素:false
集合是否為空:false
4、獲取長度
int size():獲取集合中元素的個數(shù)
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo4 { public static void main(String[] args) { Collection collection = new ArrayList(); // Collection是接口,實例化其子類 collection.add( "紅樓夢" ); collection.add( "三國演義" ); collection.add( "西游記" ); collection.add( "水滸傳" ); System.out.println( "元素個數(shù):" + collection.size()); } } |
輸出結(jié)果
元素個數(shù):4
5、交集
boolean retainAll(Collection<?> c):保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo5 { public static void main(String[] args) { Collection collection1 = new ArrayList(); // Collection是接口,實例化其子類 collection1.add( "紅樓夢" ); collection1.add( "三國演義" ); collection1.add( "西游記" ); collection1.add( "水滸傳" ); Collection collection2 = new ArrayList(); collection2.add( "西游記" ); collection2.add( "水滸傳" ); System.out.println(collection1.retainAll(collection2)); System.out.println( "collection1:" + collection1); System.out.println( "collection2:" + collection2); Collection collection3 = new ArrayList(); collection3.add( "西游記" ); collection3.add( "平凡的世界" ); System.out.println(collection1.retainAll(collection3)); System.out.println( "collection1: " + collection1); System.out.println( "collection2: " + collection2); } } |
輸出結(jié)果
true
collection1:[西游記, 水滸傳]
collection2:[西游記, 水滸傳]
true
collection1: [西游記]
collection2: [西游記, 水滸傳]
從上面結(jié)果分析得知,collection1集合與collection2集合做交集運算,最后的結(jié)果保留在collection1中,而collection2中的元素保持不變。
6、集合轉(zhuǎn)數(shù)組
Object[] toArray():集合轉(zhuǎn)數(shù)組
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package collection; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo6 { public static void main(String[] args) { Collection collection = new ArrayList(); // Collection是接口,實例化其子類 collection.add( "紅樓夢" ); collection.add( "三國演義" ); collection.add( "西游記" ); collection.add( "水滸傳" ); Object[] objects = collection.toArray(); for (Object object : objects) { System.out.println(object); } } } |
輸出結(jié)果:
紅樓夢
三國演義
西游記
水滸傳
7、遍歷
Iterator<E> iterator():返回在此 collection 的元素上進行迭代的迭代器,迭代器是集合特有的遍歷方式
其中Iterator是一個接口,其有3個方法
boolean hasNext():如果仍有元素可以迭代,則返回 true。
E next():返回迭代的下一個元素,并移動到下一個位置。
void remove():從迭代器指向的 collection 中移除迭代器返回的最后一個元素
示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package collection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionDemo7 { public static void main(String[] args) { Collection collection = new ArrayList(); // Collection是接口,實例化其子類 collection.add( "紅樓夢" ); collection.add( "三國演義" ); collection.add( "西游記" ); collection.add( "水滸傳" ); Iterator it = collection.iterator(); while (it.hasNext()) { Object object = it.next(); System.out.println(object); } it.remove(); // 如果未調(diào)用next方法,則會拋出IllegalStateException異常 System.out.println(collection); } } |
輸出結(jié)果:
紅樓夢
三國演義
西游記
水滸傳
[紅樓夢, 三國演義, 西游記]
至此,Collection接口的方法介紹完畢。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務(wù)器之家。