Java Collection(集合)簡析

來源:互聯網
上載者:User

標籤:

類集:在C++中叫做容器(container),而在Java中叫做類集

Collection(類集):最基本的集合介面,一個Collection代表一組Object集合。Collection(類集)特形:  1、  元素(Elements)存放:
  1. 可以存放相同的Elements;
  2. 不可以存放相同的Elements;
   2、 元素(Elements)順序:
  1. 有序;
  2. 無序;
Collection(類集)優點:
  1. 程式處理對象組的方法標準化;
  2. 高效能;對基本類集(動態數組,連結資料表,樹和散列表)的實現是高效率的。一般很少需要人工去對這些“資料引擎”編寫代碼。
  3. 允許不同類型的類集以相同的方式和高度互操作方式工作;
  4. 容易擴充和/或修改;
  5. 擁有將標準數組融合到類集架構中的機制;
  6. 演算法操作簡單;類集演算法在Collections類中被定義為靜態方法(如:max、min、reverse.......),因此它們可以被所有的類集所利用。
  7. 類集元素(Elements)訪問簡單。iterator提供了一個多用途,標準化的方法,通過由Iterator定義的方法,任一類集類的元素都能被訪問到。
集合架構:就是一個用來表示和操作集合的統一的架構,包含了實現集合的介面與類。 
  • Collection:集合層次中的根介面,JDK沒有提供這個介面直接的實作類別。 
  • List:是一個有序的集合,可以包含重複的元素。提供了按索引訪問的方式。
                         ArrayList:可以通俗的理解能夠自動成長容量的數組。            LinkedList:可以通穀的理解為存放Entry對象的雙向迴圈鏈表。            
  • Set:不能包含重複的元素。SortedSet是一個按照升序排列元素的Set。 
                        HashSet:可以通俗的理解為隨意的向集合中拋對象,集合中的對象是無序的;            LinkedHashSet:可以通俗的理解為隨意的向集合中拋對象,集合中的對象是按拋進的先後順序進行鏈表排序的;            TreeSet:可以通俗的理解為隨意的向集合中拋對象,集合中的對象是根據指定比較子進行排序的;
  • Map:包含了key-value對。Map不能包含重複的key。SortedMap是一個按照升序排列key的Map。
                        HashMap:可以通俗的理解為存放不同標記(Key)的對象(Value)的集合;            TreeMap:可以通俗的理解為存放不同標記(Key)的對象(Value)的集合并按標記(Key)通過指定比較子進行排序。               註:                    1. HashSet是通過HashMap實現的,TreeSet是通過TreeMap實現的,只不過Set用的只是Map的key
                    2. Map的key和Set都有一個共同的特性就是集合的唯一性.TreeMap更是多了一個排序的功能.
                    3. hashCode和equal()是HashMap用的, 因為無需排序所以只需要關註定位和唯一性即可.
                        a. hashCode是用來計算hash值的,hash值是用來確定hash表索引的.
                        b. hash表中的一個索引處存放的是一張鏈表, 所以還要通過equal方法迴圈比較鏈上的每一個對象才可以真正定位到索引值對應的Entry.
                       c. put時,如果hash表中沒定位到,就在鏈表前加一個Entry,如果定位到了,則更換Entry中的value,並返回舊value
                   4. 由於TreeMap需要排序,所以需要一個Comparator為索引值進行大小比較.當然也是用Comparator定位的.
                       a. Comparator可以在建立TreeMap時指定
                       b. 如果建立時沒有確定,那麼就會使用key.compareTo()方法,這就要求key必須實現Comparable介面.
                       c. TreeMap是使用Tree資料結構實現的,所以使用compare介面就可以完成定位了.

Java Collection(集合)簡析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.