遺留的集合
從 Java 第 1 版問世以來, 在集合框架出現之前已經存在大量“ 遺留的” 容器類。
Hashtable類
Hashtable 類與 HashMap 類的作用一樣,實際上,它們擁有相同的接口。與 Vector 類的方法一樣。Hashtable 的方法也是同步的。如果對同步性或與遺留代碼的兼容性沒有任何要求,就應該使用 HashMap。如果需要併發訪問, 則要使用 ConcurrentHashMap
枚舉
遺留集合使用 Enumeration 接口對元素序列進行遍歷。Enumeration 接口有兩個方法, 即hasMoreElements 和 nextElement。 這兩個方法與 Iterator 接口的 hasNext 方法和 next 方法十分類似。
Hashtable 類的 elements 方法將產生一個用於描述表中各個枚舉值的對象
Enuineration<Einployee> e = staff.elements();
while (e.HasMoreElements())
{
Employee e = e.nextElement();
}
屬性映射
屬性映射(property map) 是一個類型非常特殊的映射結構。它有下面 3 個特性:
鍵與值都是字符串。
表可以保存到一個文件中, 也可以從文件中加載。
使用一個默認的輔助表。
實現屬性映射的 Java 平臺類稱爲 Properties。
屬性映射通常用於程序的特殊配置選項。
棧
從 1.0 版開始,標準類庫中就包含了 Stack類,其中有大家熟悉的 push 方法和 pop方法。但是, Stack 類擴展爲 Vector 類,從理論角度看,Vector 類並不太令人滿意,它可以讓棧使用不屬於棧操作的 insert 和 remove 方法,即可以在任何地方進行插入或刪除操作,而不僅僅是在棧頂。
位集
Java 平臺的 BitSet 類用於存放一個位序列(它不是數學上的集,稱爲位向量或位數組更爲合適)。如果需要高效地存儲位序列(例如,標誌)就可以使用位集。由於位集將位包裝在字節裏,所以,使用位集要比使用 Boolean 對象的 ArrayList 更加高效。
BitSet 類提供了一個便於讀取、設置或清除各個位的接口。使用這個接口可以避免屏蔽和其他麻煩的位操作。如果將這些位存儲在 int 或丨ong 變量中就必須進行這些繁瑣的操作。
bucketOfBits.get(i)
如果第 i 位處於“ 開” 狀態,就返回 true; 否則返回 false。
bucketOfBits.set(i)
將第 i 位置爲“ 開” 狀態。最後
bucketOfBits.clear(i)
將第 i 位置爲“ 關” 狀態。