集合
接口
- List接口:储存一组不唯一,有序(插入顺序)的对象
- Set接口:储存一组唯一,无序的对象
- SortedSet接口:继承于Set,保存有序的集合
实现类
- ArrayList:实现了List接口,和数组相似能自动增长大小,每次增长长度为自身的50%,不能线程同步,不可用于多线程
- HashSet:实现了Set接口,最多包含一个值为null的元素
- HashMap:实现了Map接口
- LinkHashMap:继承于HashMap,使用元素自然顺序对元素进行排序
抽象类
- Vector:和ArrayList类似,线程同步,可用于多线程
- Dictionary:和Map类似
- HashTable:继承于Dictionary
Dictionary和HashTable的比较
1):单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.
2):多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized()方法可以获得完全线程安全的类型. 而Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.
3):Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便.
迭代器使用
String str = "abc";
Iterator <String> s = str.iterator();
if (s.hasNext()){
System.out.print(s.next());
}