1. 程式人生 > >Java類集框架

Java類集框架

類集框架圖解:
類集框架
前言:
資料結構對程式設計有著深遠的影響,在面向過程的c語言中,資料庫結構用struct來描述,而在面向物件的程式設計中,資料結構是用類來描述的,並且包含對該資料結構操作的方法。

在Java語言中,Java語言的設計者對常用的資料結構和演算法做了一些規範(介面)和實現(具體實現介面的類)。所有抽象出來的資料結構和操作(演算法)統稱為Java集合框架

Java程式設計師在具體應用時,不必考慮資料結構和演算法實現細節,只需要用這些類創建出來一些物件,然後直接應用就可以了,這樣就大大提高了程式設計效率。

  1. 什麼是框架:類庫的集合
  2. 集合框架:用來表示和操作的統一的架構,包含了實現集合的介面與類
  3. 集合:存放資料的容器
    集合框架包含了兩部分:一部分是介面,一部分是類
  4. 為什麼會出現介面:因為集合框架中的很多類 功能是相似的【所以 用介面來規範類】

主要結構圖
類集圖片1
類集圖片2
在集合框架中,介面Map和Collection 在層次結構沒有任何親緣關係,他們是截然不同的。
不要簡單的認為集合類集就這些,jdk中集合類有很多這些不過是我們經常用到的而已
Collection、List、Set、Queue和Map都是介面(Interface),不是具體的類實現。

  1. 先說set和list:
    set子介面:無序,不允許重複。
    檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變(對應類有HashSet,TreeSet)

    list子介面:有序,可以有重複元素。
    和陣列類似,list可以動態增長,查詢元素效率高,插入刪除效率低,因為會引起其他元素位置改變。(相應類有ArrayList,LinkedList,Vector)

集合框架詳解:

1、集合框架是為表示和操作集合而規定的一種體系結構。
2、任何集合框架都包括:對外的介面、介面的實現和集合運算的演算法。
介面:即表示集合的抽象資料型別。介面提供了讓我們對集合中所表示的內容進行單獨操作的可能。   
實現:也就是集合框架中介面的具體實現。實際它們就是那些可複用的資料結構。   
演算法:在一個實現了某個集合框架中的介面的物件身上完成某種有用的計算的方法,例如查詢、排序等。這些演算法通常是多型的,因為相同的方法可以在同一個介面被多個類實現時有不同的表現。事實上,演算法是可複用的函式
3、集合框架對我們程式設計的好處
1)它減少了程式設計的辛勞
  集合框架通過提供有用的資料結構和演算法使你能集中注意力於你的程式的重要部分上,而不是為了讓程式能正常運轉而將注意力於低層設計上。通過這些在無關API之間的簡易的互用性,使你免除了為改編物件或轉換程式碼以便聯合這些API而去寫大量的程式碼。
它提高了程式速度和質量
  集合框架通過提供對有用的資料結構和演算法的高效能和高質量的實現使你的程式速度和質量得到提高。因為每個介面的實現是可互換的,所以你的程式可以很容易的通過改變一個實現而進行調整。另外,你將可以從寫你自己的資料結構的苦差事中解脫出來,從而有更多時間關注於程式其它部分的質量和效能。
2)減少去學習和使用新的API 的辛勞
  許多API天生的有對集合的儲存和獲取。在過去,這樣的API都有一些子API幫助操縱它的集合內容,因此在那些特殊的子API之間就會缺乏一致性,你也不得不從零開始學習,並且在使用時也很容易犯錯。而標準集合框架介面的出現使這個問題迎刃而解。
減少了設計新API的努力
  設計者和實現者不用再在每次建立一種依賴於集合內容的API時重新設計,他們只要使用標準集合框架的介面即可。
3)集合框架鼓勵軟體的複用
  對於遵照標準集合框架介面的新的資料結構天生即是可複用的。同樣對於操作一個實現了這些介面的物件的演算法也是如此。   有了這些優點,並通過合理的使用,它就會成為程式設計師的一種強大的工具。不過,從歷史上來看,集合大多其結構相當複雜,也就給它們一個造成極不合理的學習曲線的壞名聲。但是,希望Java2的集合框架能縮短你的學習曲線,從而快速掌握它。   在許多高階語言中的陣列其實也是集合的一種簡單實現,比如C,C++,Pascal和Java。陣列儲存著相同型別的多個值,它的長度在陣列被建立時就固定下來,建立之後就無法改變。如果你需要一種大小能動態改變的儲存結構,陣列就不適合了,這時集合框架就有了用武之地了。
4、在java中,其java.util中的工具介面和類都是一類集合,你應用其可以通過一個型別的介面定義一個型別的物件集合,這樣,你可以很方便的對一類有著相似特點的物件操作,而且由於其是介面的物件,因此很容易拓展。
總的來說,集合框架可以幫助你很好的應用其資料結構,增加程式碼的可操作性和可複用性。你可以好好看看資料結構,然後對照著看看其集合框架中的介面,或者你也可以學學設計模式,就能對這種好處更能理解了

  • 集合框架好處簡答:
    1 使用核心集合類降低開發成本,而非實現我們自己的集合類。
    2 隨著使用經過嚴格的測試的集合框架類,程式碼質量會得到提高。
    3 通過使用jdk附帶的集合類,可以降低程式碼維護成本。
    4 複用性和可操作性。