国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Java 集合框架

2022-01-25 15:27 更新

早在 Java 2 中之前,Java 就提供了特設類。比如:Dictionary, Vector, Stack, 和 Properties 這些類用來存儲和操作對象組。

雖然這些類都非常有用,但是它們缺少一個核心的,統(tǒng)一的主題。由于這個原因,使用 Vector 類的方式和使用 Properties 類的方式有著很大不同。

集合框架被設計成要滿足以下幾個目標。

  • 該框架必須是高性能的?;炯希▌討B(tài)數(shù)組,鏈表,樹,哈希表)的實現(xiàn)也必須是高效的。
  • 該框架允許不同類型的集合,以類似的方式工作,具有高度的互操作性。
  • 對一個集合的擴展和適應必須是簡單的。

為此,整個集合框架就圍繞一組標準接口而設計。你可以直接使用這些接口的標準實現(xiàn),諸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通過這些接口實現(xiàn)自己的集合。

簡化圖:

1

說明:對于以上的框架圖有如下幾點說明

  1. 所有集合類都位于 java.util 包下。Java的集合類主要由兩個接口派生而出:Collection 和 Map,Collection 和 Map 是 Java 集合框架的根接口,這兩個接口又包含了一些子接口或實現(xiàn)類。
  2. 集合接口:6個接口(短虛線表示),表示不同集合類型,是集合框架的基礎。
  3. 抽象類:5個抽象類(長虛線表示),對集合接口的部分實現(xiàn)。可擴展為自定義集合類。
  4. 實現(xiàn)類:8個實現(xiàn)類(實線表示),對接口的具體實現(xiàn)。
  5. Collection 接口是一組允許重復的對象。
  6. Set 接口繼承 Collection,集合元素不重復。
  7. List 接口繼承 Collection,允許重復,維護元素插入順序。
  8. Map接口是鍵-值對象,與Collection接口沒有什么關系。
  9. Set、List 和 Map 可以看做集合的三大類:
    List 集合是有序集合,集合中的元素可以重復,訪問集合中的元素可以根據(jù)元素的索引來訪問。
    Set 集合是無序集合,集合中的元素不可以重復,訪問集合中的元素只能根據(jù)元素本身來訪問(也是集合里元素不允許重復的原因)。
    Map 集合中保存 Key-value 對形式的元素,訪問時只能根據(jù)每項元素的 key 來訪問其 value。

集合框架圖如圖所示:


Java 集合框架提供了一套性能優(yōu)良,使用方便的接口和類,java 集合框架位于 java.util 包中, 所以當使用集合框架的時候需要進行導包。


集合接口

集合框架定義了一些接口。本節(jié)提供了每個接口的概述:

序號 接口描述
1 Collection 接口
允許你使用一組對象,是Collection層次結構的根接口。
2 List 接口
繼承于Collection和一個 List實例存儲一個有序集合的元素。
3 Set
繼承于 Collection,是一個不包含重復元素的集合。
4 SortedSet
繼承于Set保存有序的集合。
5 Map
將唯一的鍵映射到值。
6 Map.Entry
描述在一個Map中的一個元素(鍵/值對)。是一個Map的內部類。
7 SortedMap
繼承于Map,使Key保持在升序排列。
8 Enumeration
這是一個傳統(tǒng)的接口和定義的方法,通過它可以枚舉(一次獲得一個)對象集合中的元素。這個傳統(tǒng)接口已被迭代器取代。

集合類

Java 提供了一套實現(xiàn)了 Collection 接口的標準集合類。其中一些是具體類,這些類可以直接拿來使用,而另外一些是抽象類,提供了接口的部分實現(xiàn)。

標準集合類匯總于下表:

序號 類描述
1 AbstractCollection 
實現(xiàn)了大部分的集合接口。
2 AbstractList 
繼承于 AbstractCollection 并且實現(xiàn)了大部分List接口。
3 AbstractSequentialList 
繼承于  AbstractList ,提供了對數(shù)據(jù)元素的鏈式訪問而不是隨機訪問。
4 LinkedList
繼承于 AbstractSequentialList,實現(xiàn)了一個鏈表。
5 ArrayList
通過繼承 AbstractList,實現(xiàn)動態(tài)數(shù)組。
6 AbstractSet 
繼承于 AbstractCollection 并且實現(xiàn)了大部分Set接口。
7 HashSet
繼承了 AbstractSet,并且使用一個哈希表。
8 LinkedHashSet
具有可預知迭代順序的 Set 接口的哈希表和鏈接列表實現(xiàn)。
9 TreeSet
繼承于AbstractSet,使用元素的自然順序對元素進行排序.
10 AbstractMap 
實現(xiàn)了大部分的 Map 接口。
11 HashMap
繼承了 HashMap,并且使用一個哈希表。
12 TreeMap
繼承了 AbstractMap,并且使用一顆樹。
13 WeakHashMap
繼承 AbstractMap類,使用弱密鑰的哈希表。
14 LinkedHashMap
繼承于 HashMap,使用元素的自然順序對元素進行排序.
15 IdentityHashMap
繼承 AbstractMap 類,比較文檔時使用引用相等。

在前面的教程中已經討論通過 java.util 包中定義的類,如下所示:

序號 類描述
1 Vector
Vector 類實現(xiàn)了一個動態(tài)數(shù)組。和 ArrayList 和相似,但是兩者是不同的。
2 Stack
棧是 Vector 的一個子類,它實現(xiàn)了一個標準的后進先出的棧。
3 Dictionary
Dictionary 類是一個抽象類,用來存儲鍵/值對,作用和 Map 類相似。
4 Hashtable
Hashtable 是原始的 java.util 的一部分, 是一個 Dictionary 具體的實現(xiàn) 。
5 Properties
Properties 繼承于 Hashtable.表示一個持久的屬性集.屬性列表中每個鍵及其對應值都是一個字符串。
6 BitSet
一個 Bitset 類創(chuàng)建一種特殊類型的數(shù)組來保存位值。BitSet 中數(shù)組大小會隨需要增加。

一個 Bitset 類創(chuàng)建一種特殊類型的數(shù)組來保存位值。BitSet 中數(shù)組大小會隨需要增加。


集合算法

集合框架定義了幾種算法,可用于集合和映射。這些算法被定義為集合類的靜態(tài)方法。

在嘗試比較不兼容的類型時,一些方法能夠拋出 ?ClassCastException?異常。當試圖修改一個不可修改的集合時,拋出?UnsupportedOperationException?異常。

集合定義三個靜態(tài)的變量:EMPTY_SET EMPTY_LIST,EMPTY_MAP 的。這些變量都不可改變。

序號 算法描述
1 Collection Algorithms
這里是一個列表中的所有算法實現(xiàn)。

如何使用迭代器

通常情況下,你會希望遍歷一個集合中的元素。例如,顯示集合中的每個元素。

做到這一點最簡單的方法是采用一個迭代器,它是一個對象,實現(xiàn)了 Iterator 接口或 ListIterator 接口。

迭代器,使你能夠通過循環(huán)來得到或刪除集合的元素。ListIterator 繼承了 Iterator,以允許雙向遍歷列表和修改元素。

這里通過實例列出 Iterator 和 listIterator 接口提供的所有方法。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號