java集合架構

來源:互聯網
上載者:User

標籤:style   color   java   使用   io   資料   for   ar   

1)java集合架構的階層

2)使用Collection介面定義的公用方法對集合和線性表操作

3)使用Iterator介面遍曆集合

4)使用JDK的增強for迴圈替代迭代Iterator進行集合遍曆

5)熟悉Set介面,瞭解何時及如何使用HashSet,LinkedHashSet或TreeHashSet來儲存元素

6)使用Comparator介面來比較元素

7)熟悉List介面,瞭解何時以及如何使用ArrayList或者LinkedList來儲存元素
8)區分Vector與ArrayList,並瞭解如何使用Vector和Stack

9)使用JDK1.5的一般類型來簡化程式設計

10)理解Collection和Map的區別,知道何時及如何使用HashMap,LinkedHashMap,TreeHashMap來儲存

11)使用Collections類中的靜態方法
12)使用Arrays類中的靜態方法


以上就是java集合架構的內容,如果你對哪一條不熟悉,說明需要好好的看看。

---------------------------------------------------------------------------------------------------------------------------------------------------

java集合架構支援3種類型的集合:規則集(Set),線性表(List),和圖(Map),分別定義在Set,List,Map中。Set執行個體儲存一組互不相同的元素(集合),List執行個體儲存一組順序排列的元素(表),Map儲存一組 對象---關索引值的映射


總的架構如下,非常重要,包含繼承關係,實現的分類,一目瞭然:

Collection介面: 

       Set介面:

            HashSet具體類

            LinkedHashSet具體類

            TreeSet具體類

       List介面: 
            ArrayList具體類

            LinkedList具體類

            向量類Vector具體類

            Stack具體類


Map介面:
       HashMap類

       LinkedHashMap類

       TreeMap類            
    
---------------------------------------------------------------------------------------------------------------------------------------------------



1)先來說Collection介面,它是處理對象集合的根介面,提供了一些公用方法,size,Iterator,add,remove什麼的

2)Set和List介面都擴充自Collection,Set就是高中數學裡所說的集合,不允許重複,無序。List就像一個表,可以重複,元素在表裡有順序的放著。

3)然後來說Set介面的3種實現:

  HashSet的對象必須實現hashCode方法,javaAPI大多數類實現了hashCode方法。
  LinkedHashSet實現了對HashSet的擴充,支援規則集內元素的排序,在HashSet中元素是沒有順序的,而在LinkedHashSet中,可以按元素插入集合的順序進行提取
  TreeSet保證集中的元素是有序的,有2種方法可以實現對象之間的可比較性:1,添加到TreeSet的對象實現了Comparable介面;2,給規則集的元素指定一個比較子(Comparator)

使用提示:

如果希望按照元素插入集合的順序進行提取元素,用LinkedHashSet,它的元素按添加的順序儲存

如果沒有上述需求,應該用HashSet,它的效率比LinkedHashSet高

LinkedHashSet只是按照添加的的先後順序在儲存時保持順序,要給集合元素添加順序屬性,需要使用TreeSet(集合元素有排序關係)。


4)再來說List的幾種實現

最重要的的當然是ArrayList(不同步)和LinkedList,一個使用數組實現的動態擴充容量的list,一個是鏈式實現的list。

還有就是Vector(同步)類,它除了包含訪問和修改向量的同步方法之外,跟ArrayList一樣。

最後就是Stack類,它繼承自Vector類,,但一般只作為棧的功能來使用,不要去使用Vector裡面的功能


5)Map

Map是映射,跟前面的Set和List有本質的區別。

散列圖HashMap,鏈式散列圖LinkedHashMap,樹形圖TreeHashMap是映射的3種實現,從名字上來說,有了上述Set的3種實現的分析,這個也是類似的。

HashMap:效率高
LikedHashMap:按照添加順序儲存,可以按添加順序取出
TreeHashMap:排序性

---------------------------------------------------------------------------------------------------------------------------------------------------


Collections類和Arrays類:

Collections類(注意不是Collection):提供了許多靜態方法來管理集合,線性表(大多數是來操作線性表的,比如對線性表複製,排序之類的,參見API)

Arrays類:提供了對數組排序,尋找,比較,填充元素的各種靜態方法。

----------------------------------------------------------------------------------------------------------------------------------------------------


一般類型的使用:

是指在java集合中使用泛型來指定添加元素的類型:

HashMap<K,V>  map  =  new HashMap<K,V>()   其中K,V是兩個類類型,表明這裡只能填充k,v類型的對象

另外集合中只能添加對象,對於基礎資料型別 (Elementary Data Type),會自動轉型為對應的封裝類。

--------------------------------------------------------------------------------------------------------------------------------------------------

相關文章

聯繫我們

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