java集合collection接口與子接口及實(shí)現(xiàn)類
概要
集合概念:像數(shù)組一樣是java的一個(gè)容器;和數(shù)組不同的是數(shù)組只能存同類型的數(shù)據(jù),且長(zhǎng)度定義之后就不可變,集合不僅,可以存多種類型的數(shù)據(jù),而且還提供了增、刪、改、查的方法;
集合分類:可以分為單列集合與雙列集合,單列集合指在集合中放單個(gè)元素,雙列集合指集合中的元素是以鍵值對(duì)的方式存放的。
在Collection接口的兩個(gè)重要子接口Set與List接口,實(shí)現(xiàn)的子類都是單列集合,通過(guò)觀察Collection接口源碼,可以看出它繼承了Iterable接口;
1 Collection接口的實(shí)現(xiàn)子類特性
- (1)Collection接口的實(shí)現(xiàn)子類可以存放多元素,每個(gè)元素可以是Object
- (2)Collection接口的實(shí)現(xiàn)子類,List存放有序,Set存放無(wú)序;
- (3)Collection接口沒(méi)有直接子類,都是通過(guò)List與Set子接實(shí)現(xiàn)的
2 通過(guò)實(shí)現(xiàn)子類ArrayList體現(xiàn)Collection接口方法
Collection中常用方法如下:
2.1 代碼演示示例
//通過(guò)注解抑制編譯警告 @SuppressWarnings({"all"}) public class CollectionMethodDemo { public static void main(String[] args) { // 創(chuàng)建對(duì)象 List arrList = new ArrayList(); // 使用add添加元素 arrList.add("name"); arrList.add(15); } }
3 集合的遍歷:①使用Iterator(迭代器)②增強(qiáng)for循環(huán)遍歷
- 1)、Iterator對(duì)象稱為迭代器,主要用于遍歷Collection集合中的元素,
- 2)、所有實(shí)現(xiàn)了Collection接口的類都有一個(gè)iterator()方法,用于返回實(shí)現(xiàn)了Iterator接口的對(duì)象,可以返回一個(gè)迭代器
- 3)、Iterator僅用于遍歷集合,不存放對(duì)象;
3.1 代碼示例
public class ArrayListTest { public static void main(String[] args) { Books book1 = new Books("三國(guó)演義",50); Books book2 = new Books("紅樓夢(mèng)",60); Books book3 = new Books("西游記",70); Books book4 = new Books("水滸傳",80); // 創(chuàng)建集合 List list = new ArrayList<>(); // 添加元素 list.add(book1); list.add(book2); list.add(book3); list.add(book4); // 迭代器遍歷集合 Iterator iterator = list.iterator(); while (iterator.hasNext()){ Object object = iterator.next(); System.out.println(object); } System.out.println("======================"); // 增強(qiáng)for遍歷 for (Object b:list){ System.out.println(b); } } } class Books{ private String name; private int price; public Books() { } public Books(String name, int price) { this.name = name; this.price = price; } /** * 獲取 * @return name */ public String getName() { return name; } /** * 設(shè)置 * @param name */ public void setName(String name) { this.name = name; } /** * 獲取 * @return price */ public int getPrice() { return price; } /** * 設(shè)置 * @param price */ public void setPrice(int price) { this.price = price; } public String toString() { return "Books{name = " + name + ", price = " + price + "}"; } }
4 List相關(guān)解讀
- 實(shí)現(xiàn)了List接口的子類都,都是有序的且允許重復(fù);
- 存入數(shù)據(jù)與取出的數(shù)據(jù)順序保持一致,支持索引取(索引從0開始);
5 Set接口分析
- 1)Set接口創(chuàng)建集合是無(wú)序的,沒(méi)有索引,
- 2)不許出現(xiàn)重復(fù)元素,最多包含一個(gè)null
- 3)常見的Set接口實(shí)現(xiàn)類有,HashSet、TreeSet
Map接口及實(shí)現(xiàn)子類
Map子類實(shí)現(xiàn)的都是雙列集合
map接口實(shí)現(xiàn)類的特點(diǎn)(JDK 8):
- (1)保存具有映射關(guān)系的數(shù)據(jù);雙列元素key----value
- (2)Map中的key和value可以是任意的引用類型數(shù)據(jù),會(huì)封裝到HashMap$Node對(duì)象
- (3)Map中的key不允許重復(fù),value可以重復(fù);
- (4)Map中的key和value都可以為空,但可以只能有一個(gè)null,
- (5)在Map中常用String類型作為key使用
- (6)key與value存在一一對(duì)應(yīng)的關(guān)系
結(jié)語(yǔ)
到此這篇關(guān)于java集合collection接口與子接口及實(shí)現(xiàn)類的文章就介紹到這了,更多相關(guān)java collection接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)特定范圍的完數(shù)輸出算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)特定范圍的完數(shù)輸出算法,簡(jiǎn)單說(shuō)明了完數(shù)的概念、計(jì)算原理并結(jié)合實(shí)例形式分析了java針對(duì)給定范圍內(nèi)的完數(shù)輸出操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12Java編程中的防轉(zhuǎn)義和轉(zhuǎn)義技巧匯總
在編程過(guò)程中,我們常常需要處理特殊字符和特定上下文,以確保生成的內(nèi)容在正確的環(huán)境中能夠被解析和顯示,本文將介紹一些常見的防轉(zhuǎn)義或者轉(zhuǎn)義處理的編程技巧,需要的可以參考一下2023-07-07Java使用jxl包寫Excel文件適合列寬實(shí)現(xiàn)
用jxl.jar包,讀寫過(guò)Excel文件。也沒(méi)有注意最適合列寬的問(wèn)題,但是jxl.jar沒(méi)有提供最適合列寬的功能,上次用到寫了一下,可以基本實(shí)現(xiàn)最適合列寬。2013-11-11java file.renameTo返回false的原因及解決方案
這篇文章主要介紹了java file.renameTo返回false的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07如何基于Spring使用工廠模式實(shí)現(xiàn)程序解耦
這篇文章主要介紹了如何基于Spring使用工廠模式實(shí)現(xiàn)程序解耦,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12elasticsearch集群cluster主要功能詳細(xì)分析
這篇文章主要為大家介紹了elasticsearch集群cluster主要功能詳細(xì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04關(guān)于Java三大特性之多態(tài)的總結(jié)
這篇文章主要介紹了關(guān)于Java三大特性之多態(tài)的總結(jié),內(nèi)容詳細(xì),涉及多態(tài)的定義,存在條件,好處,分類及實(shí)現(xiàn)方式等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Mybatis之Mapper動(dòng)態(tài)代理實(shí)例解析
這篇文章主要介紹了Mybatis之Mapper動(dòng)態(tài)代理實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08啟動(dòng)SpringBoot報(bào)錯(cuò)Input length = 1問(wèn)題及解決
這篇文章主要介紹了啟動(dòng)SpringBoot報(bào)錯(cuò)Input length = 1問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05