国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java集合框架之Collection接口詳解

2019-11-26 13:24:14
字體:
供稿:網(wǎng)友

Java是一門面向?qū)ο蟮恼Z言,那么我們寫程序的時(shí)候最經(jīng)常操作的便是對象了,為此,Java提供了一些專門用來處理對象的類庫,這些類庫的集合我們稱之為集合框架。Java集合工具包位于Java.util包下,包含了很多常用的數(shù)據(jù)結(jié)構(gòu),如數(shù)組、鏈表、棧、隊(duì)列、集合、哈希表等。學(xué)習(xí)Java集合框架下大致可以分為如下五個(gè)部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具類(Arrays、Collections)。

Java的集合類主要由兩個(gè)接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,這兩個(gè)接口又包含了一些接口或?qū)崿F(xiàn)類。

可以看到Collection并沒有直接實(shí)現(xiàn)類,而是提供更具體的子接口實(shí)現(xiàn)。通過查詢API,可以總結(jié)出Collection的基本功能。

1、添加

boolean add(E e):添加一個(gè)元素

boolean addAll(Collection<? extends E> c):添加一個(gè)集合的元素

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo1 {  public static void main(String[] args) {    Collection collection1 = new ArrayList(); // Collection是接口,實(shí)例化其子類    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):移除一個(gè)集合的元素

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo2 {  public static void main(String[] args) {    Collection collection1 = new ArrayList(); // Collection是接口,實(shí)例化其子類    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("移除一個(gè)元素:" + collection1);    System.out.println();    Collection collection2 = new ArrayList();    collection2.add("三國演義");    collection2.add("西游記");    collection2.add("平凡的世界");    boolean b2 = collection1.removeAll(collection2); // 移除兩個(gè)集合的交集,只要有一個(gè)元素被移除了,就返回true    System.out.println("移除一個(gè)集合:" + collection1);    System.out.println("是否移除了元素:" + b2);    System.out.println();    Collection collection3 = new ArrayList();    collection3.add("平凡的世界");    collection3.add("圍城");    boolean b3 = collection1.removeAll(collection3);// 移除兩個(gè)集合的交集,只要有一個(gè)元素被移除了,就返回true    System.out.println("移除一個(gè)集合:" + collection1);    System.out.println("是否移除了元素:" + b3);    System.out.println();    collection1.clear();    System.out.println("清除集合中的所有元素:" + collection1);  }}

輸出結(jié)果

初始狀態(tài):[紅樓夢, 三國演義, 西游記, 水滸傳]
是否移除了元素:true
移除一個(gè)元素:[三國演義, 西游記, 水滸傳]

移除一個(gè)集合:[水滸傳]
是否移除了元素:true

移除一個(gè)集合:[水滸傳]
是否移除了元素:false

清除集合中的所有元素:[]

3、判斷

boolean contains(Object o):判斷集合是否包含指定元素

boolean containsAll(Collection<?> c):判斷集合是否包含指定的集合元素

boolean isEmpty():判斷集合是否為空

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo3 {  public static void main(String[] args) {    Collection collection1 = new ArrayList(); // Collection是接口,實(shí)例化其子類    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("是否包含一個(gè)集合中元素:" + collection1.containsAll(collection2)); // 包含所有才包含    System.out.println("集合是否為空:" + collection1.isEmpty());  }}

輸出結(jié)果

是否包含紅樓夢:true
是否包含一個(gè)集合中元素:false
集合是否為空:false

4、獲取長度

int size():獲取集合中元素的個(gè)數(shù)

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo4 {  public static void main(String[] args) {    Collection collection = new ArrayList(); // Collection是接口,實(shí)例化其子類    collection.add("紅樓夢");    collection.add("三國演義");    collection.add("西游記");    collection.add("水滸傳");    System.out.println("元素個(gè)數(shù):" + collection.size());  }}

輸出結(jié)果

元素個(gè)數(shù):4

5、交集

boolean retainAll(Collection<?> c):保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo5 {  public static void main(String[] args) {    Collection collection1 = new ArrayList(); // Collection是接口,實(shí)例化其子類    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集合做交集運(yùn)算,最后的結(jié)果保留在collection1中,而collection2中的元素保持不變。

6、集合轉(zhuǎn)數(shù)組

Object[] toArray():集合轉(zhuǎn)數(shù)組

示例代碼

package collection;import java.util.ArrayList;import java.util.Collection;public class CollectionDemo6 {  public static void main(String[] args) {    Collection collection = new ArrayList(); // Collection是接口,實(shí)例化其子類    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 的元素上進(jìn)行迭代的迭代器,迭代器是集合特有的遍歷方式

其中Iterator是一個(gè)接口,其有3個(gè)方法

boolean hasNext():如果仍有元素可以迭代,則返回 true。

E next():返回迭代的下一個(gè)元素,并移動(dòng)到下一個(gè)位置。

void remove():從迭代器指向的 collection 中移除迭代器返回的最后一個(gè)元素

示例代碼

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是接口,實(shí)例化其子類    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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乡县| 广东省| 天台县| 英山县| 砀山县| 康平县| 龙江县| 宜兴市| 永丰县| 藁城市| 新沂市| 繁昌县| 桂东县| 永川市| 荣成市| 景德镇市| 青海省| 满城县| 剑河县| 蒙阴县| 阳春市| 康保县| 咸阳市| 麻阳| 临清市| 凤凰县| 文成县| 德清县| 天镇县| 博客| 松潘县| 永德县| 白朗县| 鹰潭市| 长沙市| 河间市| 云梦县| 涟水县| 尼玛县| 兴义市| 灌南县|