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); // 查看该位是否为 true
bits.set(i); // 设置该位为 true
bits.clear(i); // 设置该位为 false