Java數據結構與結合框架

目錄

Java數據結構

枚舉(Enumeration)

位集合(BitSet)

向量(Vector)

棧(Stack)

字典(Dictionary)

哈希表(Hashtable)

屬性(Properties)

Java集合框架

設計目標

框架介紹

接口

實現類


持續更新中.....


Java數據結構

枚舉(Enumeration)

定義了一種從數據結構中取回連續元素的方式,可以枚舉(一次獲得一個)對象集合中的元素,用在Vector和Properties。

public class EnumerationTester {
   public static void main(String args[]) {
      Enumeration<String> days;
      Vector<String> dayNames = new Vector<String>();
      dayNames.add("Sunday");
      dayNames.add("Monday");
      dayNames.add("Tuesday");
      dayNames.add("Wednesday");
      dayNames.add("Thursday");
      dayNames.add("Friday");
      dayNames.add("Saturday");
      days = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
   }
}

result:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

位集合(BitSet)

實現了一組可以單獨設置和清除的位或標誌,比如:處理一組布爾值。

向量(Vector)

與數組(ArrayList)類似,元素可通過索引訪問,但Vector大小可以動態調整,故創建之初,無需指定大小。

棧(Stack)

後進先出(LIFO)的數據結構,類似於函數嵌套。進棧push,出棧pop,search看堆棧位置,peek出棧不移除,empty判空棧。

字典(Dictionary)

鍵映射到值的數據結構,已過時,可通過Map實現。

哈希表(Hashtable)

在用戶定義鍵結構的基礎上來組織數據。Java 2 重構的Hashtable實現了Map接口,並集成到了集合框架中。它和HashMap類很相似,但是它支持同步。

屬性(Properties)

持久的屬性集,繼承於 Hashtable.Properties類,屬性列表中每個鍵及其對應值都是一個字符串。

Java集合框架

設計目標

  • 高性能:基本集合(動態數組,鏈表,樹,哈希表)的實現也必須是高效
  • 允許不同類型的集合,以類似的方式工作,具有高度的互操作性
  • 擴展和適應性必須簡單

框架介紹

位於java.util包

兩種類型的容器:

  • 集合(Collection)
  • (Map)

Collection包含:List、Set 、Queue三種主類型,再展開就是: ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等

集合框架是一個用來代表和操縱集合的統一架構,包含如下3點:

  • 接口:集合的抽象數據類型,例如:Collection、List、Set、Map 等。
  • 實現(類):集合接口的具體實現,例如:ArrayList、LinkedList、HashSet、HashMap等。
  • 算法:實現集合接口的對象裏的方法執行的一些有用的集成計算,例如:search、sort等。

接口

Collection 接口

最基本的集合接口,存儲一組不唯一,無序的對象。

List 接口

有序的Collection,能夠精確的控制每個元素插入的位置,能夠通過索引(類似於數組下標)來訪問List中的元素。存儲一組不唯一,有序(插入順序)的對象。

Set 接口

與 Collection 相似的接口,存儲一組唯一,無序的對象。

SortedSet 接口

繼承於Set,存儲一組唯一,有序的對象。

Map 接口

存儲一組鍵值對象。

SortedMap 接口

繼承於 Map,使 Key 保持在升序排列。

實現類

AbstractCollection、AbstractList、AbstractSequentialList

LinkedList、ArrayList

AbstractSet、HashSet、LinkedHashSet、TreeSet

AbstractMap、HashMap、TreeMap、WeakHashMap、LinkedHashMap、IdentityHashMap

Vector、Stack、Dictionary、Hashtable、Properties、BitSet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章