java?Collection集合接口的介紹和使用詳解
一.關(guān)于Collection接口的繼承關(guān)系圖
Collection接口有兩個(gè)重要的子接口:List,Set。
List接口的三個(gè)重要的實(shí)現(xiàn)類:LinkedList,ArrayList,Vector
Set接口兩個(gè)重要的實(shí)現(xiàn)類:HashSet,TreeSet
二.Collection接口的實(shí)現(xiàn)類的特點(diǎn)
1.Collection實(shí)現(xiàn)類,可以存放多個(gè)元素,每個(gè)元素可以是Object或子類
2.有些Collection實(shí)現(xiàn)類,可以存放重復(fù)的元素,有些不可以
3.有些Collection實(shí)現(xiàn)類,有些是有序的(List),有些是無序的(Set)
4.Collection接口沒有直接實(shí)現(xiàn)類,是通過它的子接口Set和List來實(shí)現(xiàn)的
三.Collection接口的常用方法
由于Collection接口無法實(shí)例化,要想使用Collection接口的方法我們就用Collection的實(shí)現(xiàn)子類ArrayList來演示它的常用方法
1.add:添加單個(gè)元素
(里面存的是一個(gè)個(gè)對(duì)象,并不是基本數(shù)據(jù)類型,底層會(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類型即刪除成功就放回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:查找元素是否存在
(返回類型是boolean類型:如果元素存在就返回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接口的子類都可以傳入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("三國演繹"); boolean b = list.addAll(newList); System.out.println(b);//輸出結(jié)果:true System.out.println("list="+list);//輸出結(jié)果:list=[jack, 10, true, 西游記, 三國演繹] }
8.containsAll:查找多個(gè)元素是否存在
(如果元素多存在就返回true,否則返回false。只要是實(shí)現(xiàn)Collection接口的子類都可以傳入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接口的子類都可以傳入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ì)象稱為迭代器,主要用于遍歷Collection集合中的元素
2).所有實(shí)現(xiàn)Collection接口的的集合類都有一個(gè)iterator()方法,用以返回一個(gè)實(shí)現(xiàn)Iterator接口的對(duì)象,即可以返回一個(gè)迭代器3).Iterator僅用于遍歷集合,Iterator本身并不存放對(duì)象
- 迭代器的執(zhí)行原理
1).通過Collection接口實(shí)現(xiàn)類的iterator()方法得到一集合的迭代器(Iterator)
Iterator iterator = list.iterator();
2).通過迭代器(Iterator)里的hasNext()方法判斷集合是否有下一個(gè)元素,如果有返回true,否則返回false
while (iterator.hasNext()){ System.out.println(iterator.next()); }
3).通過迭代器(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).基本語法
for(元素類型 元素名:集合名或數(shù)組名){ 訪問元素 }
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)就是簡化版的Iterator迭代器,本質(zhì)一樣,只能用于遍歷集合或數(shù)組(上述代碼進(jìn)行Debug)
以上就是java Collection集合接口的介紹和使用詳解的詳細(xì)內(nèi)容,更多關(guān)于java Collection集合接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux下idea、pycharm等輸入中文拼音時(shí)滿3個(gè)字母后無法繼續(xù)拼音輸入的問題
這篇文章主要介紹了linux下idea、pycharm等輸入中文拼音時(shí)滿3個(gè)字母后無法繼續(xù)拼音輸入的問題,本文通過圖文并茂的形式給大家分享解決方法,需要的朋友可以參考下2021-04-04Spring MVC如何使用@RequestParam注解獲取參數(shù)
這篇文章主要介紹了Spring MVC實(shí)現(xiàn)使用@RequestParam注解獲取參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10詳解Spring Boot中使用AOP統(tǒng)一處理Web請(qǐng)求日志
本篇文章主要介紹了詳解Spring Boot中使用AOP統(tǒng)一處理Web請(qǐng)求日志,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10Java之SpringCloud Eurka注冊(cè)錯(cuò)誤解決方案
這篇文章主要介紹了Java之SpringCloud Eurka注冊(cè)錯(cuò)誤解決方案,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Elasticsearch 映射參數(shù)詳解 fields
這篇文章主要介紹了fields Elasticsearch 映射參數(shù)fields,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java 獲取服務(wù)器環(huán)境的實(shí)例詳解
這篇文章主要介紹了Java 獲取服務(wù)器環(huán)境的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例和輸出結(jié)果,希望能幫助大家理解,需要的朋友可以參考下2017-07-07