HashTable
Hashtable 与 HashMap 的作用一样,实际上,它们拥有相同的接口。HashTable 是同步的。如果对并发访问有需求,则要使用 ConcurrentHashMap
Enumeration
遗留集合使用 Enumeration 接口对元素序列进行遍历。Enumeration 接口有两个方法,即 hasMoreElements() 和 nextElement()。这两个方法与 Iterator 接口的 hasNext() 方法和 next() 方法十分类似。
属性映射
属性映射(property map)是一个类型非常特殊的映射结构。它有下面3个特性:
- 键与值都是字符串。
- 表可以保存到一个文件中,也可以从文件中加载。
- 使用一个默认的辅助表。实现属性映射的 Java 平台类称为 Properties。
我们经常通过 Properties 来表示一组「配置」。由于历史遗留原因,Properties 内部本质上是一个 Hashtable,但我们只需要用到 Properties 自身关于读写配置的接口。
比如读取 setting.properties 文件:
String f = "setting.properties";Properties props = new Properties();props.load(new java.io.FileInputStream(f));String filepath = props.getProperty("last_open_file");String interval = props.getProperty("auto_save_interval", "120"); // 如果没有该选项,设置一个默认值
当然也可以写配置:
Properties props = new Properties();props.setProperty("url", "http://www.liaoxuefeng.com");props.setProperty("language", "Java");props.store(new FileOutputStream("C:\\conf\\setting.properties"), "这是写入的properties注释");
更多详情请看这里。
栈
1.0 开始,就包含了栈。但是,Stack 扩展 Vector,而在 Vector 中还有不属于栈的 inser() 和 remove() 方法。
BitSet
BitSet 存放一个为位序列。可以高效的存储位序列。
例如,有一个 bits 的 BitSet:
bits.get(i); // 查看该位是否为 truebits.set(i); // 设置该位为 truebits.clear(i); // 设置该位为 false
