JAVA裡幾種資料結構的優點和缺點

來源:互聯網
上載者:User

標籤:contains   數組   特徵   bsp   ted   優勢   hash   線性   int   

一般大家都知道ArrayList和LinkedList的大致區別:
1.ArrayList是實現了基於動態數組的資料結構,LinkedList基於鏈表的資料結構。
2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。
3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料。
    這一點要看實際情況的。若只對單條資料插入或刪除,ArrayList的速度反而優於LinkedList。但若是批量隨機的插入刪除資料,LinkedList的速度大大優於ArrayList. 因為ArrayList每插入一條資料,要移動插入點及之後的所有資料。

4.尋找操作indexOf,lastIndexOf,contains等,兩者差不多。
5.隨機尋找指定節點的操作get,ArrayList速度要快於LinkedList.

Set是最簡單的一種集合。集合中的對象不按特定的方式排序,並且沒有重複對象。 Set介面主要實現了兩個實作類別:

  • HashSet: HashSet類按照雜湊演算法來存取集合中的對象,存取速度比較快 
  • TreeSet :TreeSet類實現了SortedSet介面,能夠對集合中的對象進行排序。 

Set 的用法:存放的是對象的引用,沒有重複對象

List的特徵是其元素以線性方式儲存,集合中可以存放重複對象。 

List介面主要實作類別包括:
  • ArrayList() : 代表長度可以改變得數組。可以對元素進行隨機的訪問,向ArrayList()中插入與刪除元素的速度慢。 
  • LinkedList(): 在實現中採用鏈表資料結構。插入和刪除速度快,訪問速度慢。 
對於List的隨機訪問來說,就是只隨機來檢索位於特定位置的元素。 List 的 get(int index) 方法放回集合中由參數index指定的索引位置的對象,下標從“0” 開始。最基本的兩種檢索集合中的所有對象的方法:  

JAVA裡幾種資料結構的優點和缺點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.