【java讀書筆記】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

兩個月之前準備軟考時,簡單的從理論上總結了最常用的數據結構和算法,比如:線性表鏈表。在進行java開發時,jdk爲我們提供了一系列相應的類來實現基本的數據結構。jdk所提供的容器API位於java.util包內。本文主要是通過簡單的介紹Collection集合,向讀者簡單闡述各個類的基本定義以及其作用,爲後面的學習做一下鋪墊。


首先,我們先看一下Collection集合的基本結構:

       

 

1、Collection接口

       Collection是最基本集合接口,它定義了一組允許重複的對象。Collection接口派生了兩個子接口Set和List,分別定義了兩種不同的存儲方式,如下:

 

2、 Set接口

       Set接口繼承於Collection接口,它沒有提供額外的方法,但實現了Set接口的集合類中的元素是無序且不可重複。

       特徵:無序且不可重複。

 

3、  List接口

        List接口同樣也繼承於Collection接口,但是與Set接口恰恰相反,List接口的集合類中的元素是對象有序且可重複。

       特徵:有序且可重複

       兩個重要的實現類:ArrayList和LinkedList

       1.ArrayList特點是有序可重複

       2.LinkedList是一個雙向鏈表結構的。

 

4、Map接口

       Map也是接口,但沒有繼承Collection接口。該接口描述了從不重複的鍵到值的映射。Map接口用於維護鍵/值對(key/value pairs)。

       特徵:它描述了從不重複的鍵到值的映射。

       兩個重要的實現類:HashMap和TreeMap

       1.HashMap,中文叫散列表,基於哈希表實現,特點就是鍵值對的映射關係。一個key對應一個Value。HashMap中元素的排列順序是不固定的。更加適合於對元素進行插入、刪除和定位。

       2.TreeMap,基於紅黑書實現。TreeMap中的元素保持着某種固定的順序。更加適合於對元素的順序遍歷。


5、Iterator接口

       Iterator接口,在C#裏有例外一種說法IEnumerator,他們都是集合訪問器,用於循環訪問集合中的對象。
      所有實現了Collection接口的容器類都有iterator方法,用於返回一個實現了Iterator接口的對象。Iterator對象稱作迭代器,
Iterator接口方法能以迭代方式逐個訪問集合中各個元素,並可以從Collection中除去適當的元素。

      

[csharp] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-size:10px;">Iterator it = collection.iterator(); // 獲得一個迭代子    
  2. while(it.hasNext())     
  3. {    
  4. Object obj = it.next(); // 得到下一個元素    
  5. } </span>  

 

6、Comparable接口

      Comparable可以用於比較的實現,實現了Comparable接口的類可以通過實現comparaTo方法從而確定該類對象的排序方式。


總結

 

       Collection集合分別派生自Collection和Map接口,Collection有兩個常用子接口List和Set,分別表示有序可重複,無序不可重複的集合。而Map存儲的是key-value的映射。


        上面的總結看上去很多,很繁瑣,其實你只要記得一點:collection是用於處理各種數據結構的,根據各種數據結構的特點理解,一切都會變簡單。


      雖然此博客有點糙,也希望能幫助你對集合的理解有一點點作用(尤其是對組織中人)。下面的博文,我會更新一些有關線程的基礎知識,請繼續關注。

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章