java?Collection集合接口的介紹和使用詳解
一.關(guān)于Collection接口的繼承關(guān)系圖
Collection接口有兩個(gè)重要的子接口:List,Set。
List接口的三個(gè)重要的實(shí)現(xiàn)類(lèi):LinkedList,ArrayList,Vector
Set接口兩個(gè)重要的實(shí)現(xiàn)類(lèi):HashSet,TreeSet

二.Collection接口的實(shí)現(xiàn)類(lèi)的特點(diǎn)
1.Collection實(shí)現(xiàn)類(lèi),可以存放多個(gè)元素,每個(gè)元素可以是Object或子類(lèi)
2.有些Collection實(shí)現(xiàn)類(lèi),可以存放重復(fù)的元素,有些不可以
3.有些Collection實(shí)現(xiàn)類(lèi),有些是有序的(List),有些是無(wú)序的(Set)
4.Collection接口沒(méi)有直接實(shí)現(xiàn)類(lèi),是通過(guò)它的子接口Set和List來(lái)實(shí)現(xiàn)的
三.Collection接口的常用方法
由于Collection接口無(wú)法實(shí)例化,要想使用Collection接口的方法我們就用Collection的實(shí)現(xiàn)子類(lèi)ArrayList來(lái)演示它的常用方法
1.add:添加單個(gè)元素
(里面存的是一個(gè)個(gè)對(duì)象,并不是基本數(shù)據(jù)類(lèi)型,底層會(huì)自動(dòng)裝箱。并且添加成功返回true,添加失敗返回false)
public static void main(String[] args) {
Collection collection = new ArrayList<>();
//add方法的使用
boolean b = collection.add("jack");
System.out.println(b);//輸出結(jié)果:true
collection.add(10);
collection.add(true);
System.out.println("List="+collection);//輸出結(jié)果:List=[jack, 10, true]
}2.remove:刪除指定元素
(如果按元素刪除返回值就是boolean類(lèi)型即刪除成功就放回true,刪除失敗就放回false。如果按照索引刪除返回值就是刪除的元素)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//remove:方法的使用
//按照索引刪除(索引不存在就報(bào)錯(cuò))
Object o = list.remove(1);
System.out.println(o); //輸出結(jié)果:10
//按照元素刪除
boolean b = list.remove(true);
System.out.println(b);//輸出結(jié)果:true
System.out.println("List="+list);//輸出結(jié)果:List=[jack]
}3.contains:查找元素是否存在
(返回類(lèi)型是boolean類(lèi)型:如果元素存在就返回true,不存在就返回false)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//contains:方法的使用
boolean b = list.contains("jack");
System.out.println(b);//輸出結(jié)果:true
}4.size:獲取元素的個(gè)數(shù)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//size:方法的使用
int s = list.size();
System.out.println(s);//輸出結(jié)果:3
}5.isEmpty:判斷此集合是否為空
(如果此集合為空返回true,不為空返回false)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//isEmpty:方法的使用
boolean b = list.isEmpty();
System.out.println(b);//輸出結(jié)果:false
}6.clear:清空集合
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//clear:清空集合
list.clear();
System.out.println("List="+list);//輸出結(jié)果:List=[]
}7.addAll:添加多個(gè)元素
(添加成功返回true,添加失敗返回false。只要是實(shí)現(xiàn)Collection接口的子類(lèi)都可以傳入addAll方法中)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//addAll:方法的使用
List newList = new ArrayList<>();
newList.add("西游記");
newList.add("三國(guó)演繹");
boolean b = list.addAll(newList);
System.out.println(b);//輸出結(jié)果:true
System.out.println("list="+list);//輸出結(jié)果:list=[jack, 10, true, 西游記, 三國(guó)演繹]
}8.containsAll:查找多個(gè)元素是否存在
(如果元素多存在就返回true,否則返回false。只要是實(shí)現(xiàn)Collection接口的子類(lèi)都可以傳入containsAll方法中)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//containsAll:方法的使用
List newList = new ArrayList<>();
newList.add("jack");
newList.add(10);
boolean b = list.containsAll(newList);
System.out.println(b);//輸出結(jié)果:true
}9.removeAll:刪除多個(gè)元素
(如果刪除成功就返回true,否則就返回false。只要是實(shí)現(xiàn)Collection接口的子類(lèi)都可以傳入removeAll方法中)
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//removeAll:方法的使用
List newList = new ArrayList<>();
newList.add("jack");
newList.add(true);
boolean b = list.removeAll(newList);
System.out.println(b);
System.out.println("list="+list);
}四.Collection接口遍歷元素的方式
1.使用迭代器遍歷(Iterator)
- 迭代器的基本介紹
1).Iterator對(duì)象稱(chēng)為迭代器,主要用于遍歷Collection集合中的元素
2).所有實(shí)現(xiàn)Collection接口的的集合類(lèi)都有一個(gè)iterator()方法,用以返回一個(gè)實(shí)現(xiàn)Iterator接口的對(duì)象,即可以返回一個(gè)迭代器3).Iterator僅用于遍歷集合,Iterator本身并不存放對(duì)象
- 迭代器的執(zhí)行原理
1).通過(guò)Collection接口實(shí)現(xiàn)類(lèi)的iterator()方法得到一集合的迭代器(Iterator)
Iterator iterator = list.iterator();
2).通過(guò)迭代器(Iterator)里的hasNext()方法判斷集合是否有下一個(gè)元素,如果有返回true,否則返回false
while (iterator.hasNext()){
System.out.println(iterator.next());
}
3).通過(guò)迭代器(Iterator)里的next()方法返回指針下移后集合位置上的元素(next()方法作用是指針下移并且返回下移后集合位置上的元素)4).原理圖

5).代碼演示
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用迭代器遍歷集合
//1.先得到list集合的迭代器(Iterator)
Iterator iterator = list.iterator();
//2.使用while循環(huán)遍歷
while (iterator.hasNext()){
//3.返回下一個(gè)元素
Object o = iterator.next();
System.out.println(o);//遍歷完最終輸出結(jié)果為:jack 10 true
}
}2.使用增強(qiáng)for循環(huán)
增強(qiáng)for循環(huán)可以代替Iteratro迭代器。1).基本語(yǔ)法
for(元素類(lèi)型 元素名:集合名或數(shù)組名){
訪(fǎng)問(wèn)元素
}
2).代碼演示
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用增強(qiáng)for循環(huán)遍歷集合
for (Object o : list) {
System.out.println(o);
}
}3).特點(diǎn):曾強(qiáng)for循環(huán)就是簡(jiǎn)化版的Iterator迭代器,本質(zhì)一樣,只能用于遍歷集合或數(shù)組(上述代碼進(jìn)行Debug)

以上就是java Collection集合接口的介紹和使用詳解的詳細(xì)內(nèi)容,更多關(guān)于java Collection集合接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于spring AOP @Around @Before @After的區(qū)別說(shuō)明
這篇文章主要介紹了基于spring AOP @Around @Before @After的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
idea搭建mybatis環(huán)境配置全過(guò)程
本文介紹了如何以IDEA搭建MyBatis環(huán)境配置的方法,包括步驟和注意事項(xiàng),通過(guò)本文的介紹,可以輕松地以IDEA搭建MyBatis環(huán)境配置,提高開(kāi)發(fā)效率2023-10-10
深入理解java內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)
這篇文章主要介紹了Java多線(xiàn)程之內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)的深入理解新的和用法,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
Spring?Cache+Redis緩存數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了Spring?Cache+Redis緩存數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
SpringBoot如何訪(fǎng)問(wèn)不同的數(shù)據(jù)庫(kù)的方法實(shí)現(xiàn)
本文主要介紹了在SpringBoot應(yīng)用中配置和管理多個(gè)數(shù)據(jù)源的方法,包括使用SpringBoot官方支持的配置方式和第三方庫(kù)實(shí)現(xiàn)多數(shù)據(jù)源配置,感興趣的可以了解一下2024-11-11
Java 8 Lambda 表達(dá)式比較器使用示例代碼
這篇文章主要介紹了Java 8 Lambda 表達(dá)式比較器使用示例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
最長(zhǎng)重復(fù)子數(shù)組 findLength示例詳解
今天給大家分享一道比較常問(wèn)的算法面試題,最長(zhǎng)重復(fù)子數(shù)組 findLength,文中給大家分享解題思路,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友參考下吧2023-08-08
淺談多線(xiàn)程中的鎖的幾種用法總結(jié)(必看)
下面小編就為大家?guī)?lái)一篇淺談多線(xiàn)程中的鎖的幾種用法總結(jié)(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05

