遗留的集合
从 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 位置为“ 关” 状态。