溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中map和list的區(qū)別是什么

發(fā)布時(shí)間:2020-06-26 15:06:39 來源:億速云 閱讀:864 作者:Leah 欄目:編程語言

這篇文章運(yùn)用簡單易懂的例子給大家介紹java中map和list的區(qū)別,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Map(映射)

Map是一種把鍵對(duì)象和值對(duì)象映射的集合,它的每一個(gè)元素都包含一個(gè)鍵對(duì)象和值對(duì)象。 Map主要有以下兩個(gè)實(shí)現(xiàn)類:

HashMap:HashMap基于散列表實(shí)現(xiàn),其插入和查詢<K,V>的開銷是固定的,可以通過構(gòu)造器設(shè)置容量和負(fù)載因子來調(diào)整容器的性能。

LinkedHashMap:類似于HashMap,但是迭代遍歷它時(shí),取得<K,V>的順序是其插入次序,或者是最近最少使用(LRU)的次序。

TreeMap:TreeMap基于紅黑樹實(shí)現(xiàn)。查看<K,V>時(shí),它們會(huì)被排序。TreeMap是唯一的帶有subMap()方法的Map,subMap()可以返回一個(gè)子樹。

List(列表)

List的元素以線性方式存儲(chǔ),可以存放重復(fù)對(duì)象,List主要有以下兩個(gè)實(shí)現(xiàn)類:

ArrayList : 長度可變的數(shù)組,可以對(duì)元素進(jìn)行隨機(jī)的訪問,向ArrayList中插入與刪除元素的速度慢。 JDK8 中ArrayList擴(kuò)容的實(shí)現(xiàn)是通過grow()方法里使用語句newCapacity = oldCapacity + (oldCapacity >> 1)(即1.5倍擴(kuò)容)計(jì)算容量,然后調(diào)用Arrays.copyof()方法進(jìn)行對(duì)原數(shù)組進(jìn)行復(fù)制。

LinkedList: 采用鏈表數(shù)據(jù)結(jié)構(gòu),插入和刪除速度快,但訪問速度慢。

比較ListMap
繼承接口Collection
常見實(shí)現(xiàn)類AbstractList(其常用子類有ArrayList、LinkedList、Vector)HashMap、HashTable
常見方法add( )、remove( )、clear( )、get( )、contains( )、size( )put( )、get( )、remove( )、clear( )、containsKey( )、containsValue( )、keySet( )、values( )、size( )
元素可重復(fù)不可重復(fù)
順序有序
線程安全Vector線程安全Hashtable線程安全

關(guān)于java中map和list的區(qū)別就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI