1 Hashtable
与 HashMap 的作用是一样的,但是 Hashtable 是线程同步的。
如果同步性没有要求,应该尽量使用 HashMap。
2 枚举
遗留集合使用 Enumeration 接口对元素序列进行遍历。 Enumeration 接口有两个方法,即 hasMoreElements 和 nextElement。这两个方法与 Iterator 接口的 hasNext 方法和 next 方法十分类似。
3 属性映射表
属性映射表(property map)是一种存储键/值对的数据结构。经常被用来存放配置信息。有三个特性:
- 键与值都是字符串。
- 键/值对可以很容易地写入文件或从文件读出。
- 用二级表存放默认值。
实现属性映射的 Java 类被称为 Properties 类。
Properties settings = new Properties();
settings.put("width","200");
3.1 store 方法
将这个属性映射列表保存到文件中
FileOutputStream out = new FileOutputStream("program.properties");
settings.store(out,"注释");
3.2 load 方法
要想从文件中加载
FileInputStream in = new FileInputStream("program.properties");
settings.load(in);
3.3 默认值
getProperty
String userDir = System.getProperty("user.home");
settings.getProperty("width","默认值");
构造器
Properties defaultSettings = new Properties();
defaultSettings.put("width","默认值");
Properties settings = new Properties(defaultSettings);
4 栈
Stack 类,push、pop、peek
Stack 类扩展为 Vector 类,可以让栈使用不属于栈操作的 insert 和 remove 方法
5 位集
BitSet 类用于存放一个位序列(它不是数学上的集,称为位向量或位数组更为合适)。
如果需要高效地存储位序列(例如,标志)就可以使用位集。由于位集将位包装在字节里,所以,使用位集要比使用 Boolean 对象的 ArrayList 更加高效。
例如,对于一个名为 bucketOfBits 的 BitSet
bucket0fBits.get(i)//如果第i位处于“开”状态,就返回true;否则返回false。
bucket0fBits.set(i)//将第i位置为“开”状态。
bucket0fBits.clear(i)//将第i位置为“关”状态。