詳談java集合框架
1、為什么使用集合框架
當(dāng)我們并不知道程序運(yùn)行時(shí)會(huì)需要多少對(duì)象,或者需要更復(fù)雜方式存儲(chǔ)對(duì)象——可以使用Java集合框架
2、Java集合框架包含的內(nèi)容
接口:(父類)Collection接口下包含List(子類 )接口和Set(子類)
接口 List接口下又包含(ArrayList集合實(shí)現(xiàn)類和LinkedList集合實(shí)現(xiàn)類)
Set接口下又包含(HashSet集合實(shí)現(xiàn)類和TreeSet集合實(shí)現(xiàn)類)
接口:(父類)Map接口下包含(HashMap集合實(shí)現(xiàn)類和TreeMap 集合實(shí)現(xiàn)類)
*Collections接口提供了對(duì)集合進(jìn)行排序、 遍歷等多種算法實(shí)現(xiàn) *Java集合框架為我們提供了一套性能優(yōu)良、使用方便的接口和類,它們位于java.util包中
3、Collection 、List 和Set 的特性:
Collection 接口存儲(chǔ)一組不唯一,無序的對(duì)象
List 接口存儲(chǔ)一組不唯一,有序(插入順序)的對(duì)象
Set 接口存儲(chǔ)一組唯一,無序的對(duì)象 Map接口存儲(chǔ)一組鍵值對(duì)象,提供key到value的映射
4、ArrayList集合和LinkedList集合的優(yōu)點(diǎn)
1、ArrayList實(shí)現(xiàn)了長度可變的數(shù)組,在內(nèi)存中分配連續(xù)的空間。遍歷元素和隨機(jī)訪問元素的效率比較高
2、LinkedList采用鏈表存儲(chǔ)方式。插入、刪除元素時(shí)效率比較高
List接口提供相應(yīng)方法remove()、contains(),直接使用即可
List接口常用方法 :
boolean add(Object o) 在列表的末尾順序添加元素,起始索引位置從0開始
void add(int index,Object o) 在指定的索引位置添加元素。索引位置必須介于0和列表中元素個(gè)數(shù)之間
int size() 返回列表中的元素個(gè)數(shù)
Object get(int index) 返回指定索引位置處的元素。取出的元素是Object類型,使用前需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換
boolean contains(Object o) 判斷列表中是否存在指定元素
boolean remove(Object o) 從列表中刪除元素
Object remove(int index) 從列表中刪除指定位置元素,起始索引位置從0開始
LinkedList的特殊方法
void addFirst(Object o) 在列表的首部添加元素
void addLast(Object o) 在列表的末尾添加元素
Object getFirst() 返回列表中的第一個(gè)元素
Object getLast() 返回列表中的最后一個(gè)元素
Object removeFirst() 刪除并返回列表中的第一個(gè)元素
Object removeLast() 刪除并返回列表中的最后一個(gè)元素
Map接口常用方法:
Object put(Object key, Object val) 以“鍵-值對(duì)”的方式進(jìn)行存儲(chǔ)
Object get (Object key) 根據(jù)鍵返回相關(guān)聯(lián)的值,如果不存在指定的鍵,返回null
Object remove (Object key) 刪除由指定的鍵映射的“鍵-值對(duì)”
int size() 返回元素個(gè)數(shù)
Set keySet () 返回鍵的集合
Collection values () 返回值的集合
boolean containsKey (Object key) 如果存在由指定的鍵映射的“鍵-值對(duì)”,返回true
相關(guān)文章
java swing 實(shí)現(xiàn)加載自定義的字體
這篇文章主要介紹了java swing 實(shí)現(xiàn)加載自定義的字體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11SpringBoot+Redis實(shí)現(xiàn)數(shù)據(jù)字典的方法
這篇文章主要介紹了SpringBoot+Redis實(shí)現(xiàn)數(shù)據(jù)字典的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Java NIO:淺析IO模型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在進(jìn)入Java NIO編程之前,我們今天先來討論一些比較基礎(chǔ)的知識(shí):I/O模型。對(duì)java io nio相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2017-05-05SpringBoot2底層注解@ConfigurationProperties配置綁定
這篇文章主要介紹了SpringBoot2底層注解@ConfigurationProperties配置綁定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05解決java idea新建子目錄時(shí)命名不是樹形結(jié)構(gòu)的問題
這篇文章主要介紹了解決java idea新建子目錄時(shí)命名不是樹形結(jié)構(gòu)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08實(shí)例解析Java程序中正則表達(dá)式的貪婪模式匹配
貪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.+>”去匹配“a<tr>aava </tr>abb”,也許你所期待的結(jié)果是想匹配“<tr>”,但是實(shí)際結(jié)果卻會(huì)匹配到“<tr>aava </tr>”,下面我們就來看具體看一下貪婪模式的使用.2016-05-05