6 遗留的集合

Wu Jun 2018-12-18 21:52:57
05 Java > 00 Java 基础 > 06 集合

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位置为“关”状态。