更新時(shí)間:2022-03-24 11:12:57 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1644次
Java集合API 為 Java 開發(fā)人員提供 了一組類和接口,可以更輕松地處理對(duì)象集合,例如列表、映射、堆棧等。
Java無需編寫自己的集合類,而是為您提供了這些現(xiàn)成的集合類。本教程將仔細(xì)研究 Java 集合,因?yàn)樗鼈冇袝r(shí)也被稱為,更具體地說是 Java 8 及更高版本中可用的 Java 集合。
Java Collection 接口表示泛型集合上可能的操作,例如 List、Set、Stack、Queue 和 Deque。例如,Java Collection 接口中提供了基于索引訪問元素的方法。Java Collection 接口在Java Collection 接口教程 中有更詳細(xì)的解釋 。
如上所述,您不是Collection直接創(chuàng)建實(shí)例,而是創(chuàng)建Collection. 下面是一個(gè)創(chuàng)建 a 的示例,List 它是 的子類型Collection:
集合集合 = new ArrayList();
上面的示例適用于Collection.
以下接口(集合類型)擴(kuò)展了Java Collection接口:
列表
放
排序集
導(dǎo)航集
隊(duì)列
雙端隊(duì)列
Java 不附帶 Collection 接口的可用實(shí)現(xiàn),因此您必須使用列出的子類型之一。Collection 接口只定義了這些 Collection 子類型中的每一個(gè)共享的一組方法(行為)。這使得可以忽略您正在使用的特定類型的集合,并將其視為集合。這是標(biāo)準(zhǔn)繼承,所以沒有什么神奇之處,但有時(shí)它仍然是一個(gè)不錯(cuò)的功能。本文后面的部分將描述這些常用操作中最常用的。
這是一個(gè)對(duì)集合進(jìn)行操作的方法:
公共類 MyCollectionUtil{
公共靜態(tài)無效doSomething(集合集合){
迭代器 iterator = collection.iterator();
而(迭代器.hasNext()){
對(duì)象對(duì)象 = iterator.next();
//在這里做一些反對(duì)...
}
}
}
這里有幾種方法可以使用不同的 Collection 子類型調(diào)用此方法:
設(shè)置 set = new HashSet();
列表列表 = 新的 ArrayList();
MyCollectionUtil.doSomething(set);
MyCollectionUtil.doSomething(list);
無論您使用哪種 Collection 子類型,都有一些標(biāo)準(zhǔn)方法可以將元素添加到 Collection。向 a 添加元素Collection是通過該 add()方法完成的。這是向 Java 添加元素的示例Collection:
String anElement = "一個(gè)元素";
集合集合 = new HashSet();
boolean didCollectionChange = collection.add(anElement);
該add()方法將給定元素添加到集合中,true如果 Collection由于調(diào)用該add()方法而發(fā)生更改,則返回。例如, ASet可能沒有改變。如果Set已經(jīng)包含該元素,則不會(huì)再次添加。另一方面,如果您調(diào)用add()aList 并且List已經(jīng)包含該元素,則該元素將在List.
該remove()方法從 中刪除給定的元素,如果刪除的元素存在于 中并被刪除,Collection則返回 true 。Collection如果該元素不存在,則該remove()方法返回false。這是從 Java 中刪除元素的示例Collection:
boolean wasElementRemoved = collection.remove("一個(gè)元素");
您還可以Collection使用addAll(). 這是將對(duì)象集合添加到 Java 的示例Collection:
Set aSet = ... // 使用某處的元素獲取 Set
集合集合 = new HashSet();
集合.addAll(aSet); //也返回布爾值,但在這里忽略
JavaCollection addAll()將在 Collection 中找到的所有元素作為參數(shù)傳遞給該方法。Collection不添加對(duì)象本身。只有它的元素。如果您 add()使用 Collection 作為參數(shù)調(diào)用,Collection則將添加對(duì)象本身,而不是其元素。
該addAll()方法的具體行為方式取決于 Collection 子類型。一些 Collection 子類型允許多次添加相同的元素,而另一些則不允許。
Java刪除所有 作為參數(shù)傳遞給方法Collection removeAll()的元素。Collection如果 Collection 參數(shù)包含任何未找到目標(biāo)集合的元素,則這些元素將被忽略。這是從 Java 中刪除元素集合的示例Collection:
Collection objects = //... 從某個(gè)地方獲取對(duì)象的集合。
集合.removeAll(對(duì)象);
JavaCollection retainAll()與removeAll(). 它不會(huì)刪除在參數(shù)中找到的所有元素Collection,而是保留所有這些元素,并刪除所有其他元素。請(qǐng)記住,只有當(dāng)元素已經(jīng)包含在目標(biāo)集合中時(shí),它們才會(huì)被保留。Collection 在參數(shù)中找到的不在目標(biāo)集合中的任何新元素都不會(huì)自動(dòng)添加。他們只是被忽略了。這是一個(gè)Colletion在另一個(gè) Java中保留所有元素的示例Collection:
集合 colA = new ArrayList();
集合 colB = new ArrayList();
colA.add("A");
colA.add("B");
colA.add("C");
colB.add("1");
colB.add("2");
colB.add("3");
集合目標(biāo) = new HashSet();
目標(biāo).addAll(colA); //目標(biāo)現(xiàn)在包含 [A,B,C]
目標(biāo).addAll(colB); //目標(biāo)現(xiàn)在包含 [A,B,C,1,2,3]
目標(biāo).retainAll(colB); //目標(biāo)現(xiàn)在包含 [1,2,3]
size()您可以使用該方法 檢查集合的大小。“大小”是指集合中元素的數(shù)量。這是一個(gè)例子:
int numberOfElements = collection.size();
您可以迭代集合的所有元素。這是通過 從集合中獲取Java 迭代器并迭代它來完成的。這是它的外觀:
集合集合 = new HashSet();
//... 將元素添加到集合中
迭代器 iterator = collection.iterator();
而(迭代器.hasNext()){
對(duì)象對(duì)象 = iterator.next();
System.out.println(object);
}
您還可以Collection使用 Java for-each 循環(huán)來迭代 Java :
集合集合 = new HashSet();
集合.add("A");
集合.add("B");
集合.add("C");
for(對(duì)象對(duì)象:集合){
System.out.println(object);
}
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743