java集合中那些知識

tengxing007發表於2017-06-30

前言

為什麼要寫這些問題呢?

  • 複習JAVA基礎,溫故而知新,多領悟幾遍,會有不同的收穫。
  • 有些基礎知識好久不用,模糊不清
  • 集合幾乎是面試時候必問的內容

我將從哪些方面去寫呢?

  • List
  • Set
  • Map
  • Queue

Collection

這是Java中的集合類的關係圖,下面我將對其進行分析
這裡寫圖片描述

List(有序)

List介面的父親是Collection,它的實現分別是ArrayList,LinkedList, Vector,在這三個中,我們用的多的還是前面兩個,比如說我們做資料分頁的時候,經常使用ArrayList,因為它查詢方便啊,其實還是有一定的原因(陣列結構很適合做查詢嘛)。說說三者的區別吧:

  • 相同點都實現了List介面並且是有序的
  • LinkedList 的資料結構是連結串列,而ArrayList和Vector是基於陣列的。
  • LinkList 實現List的同時實現了Deque,而Deque又繼承了Queue,所以可以用著隊裡或雙像佇列
  • LinkList 是不同步的,但是可以實現同步 List list = Collections.synchronizedList(new LinkedList(…));
  • ArrayList和Vector的區別在於Vector是同步的,所以是執行緒安全的,但是必然導致效率問題

Set(不重複)

Map(鍵值對)

Queue(佇列)

後記

參考文章

相關文章