接口 | 实现 | 描述 |
List | ArrayList | 通常使用。查询快。 |
Vector | 类似ArrayList,但有线程安全。 | |
CopyOnWriteArrayList | 线程安全,性能比Vector好。 | |
LinkedList | 增删快。但只有在批量增删时才能和ArrayList拉开差距。 | |
Set | HashSet | 无序 |
TreeSet | 有序。成员需要可排序(即实现Comparable接口或继承Compartor) | |
LinkedHashSet | 有序。按插入顺序排。成员不需要可排序。 | |
Map | HashMap | 无序 |
TreeMap | 有序。键需要可排序(即实现Comparable接口或继承Compartor) | |
LinkedHashMap | 有序。按插入顺序排。键不需要可排序。 | |
IdentityHashMap | 无序。键按"=="比较结果判断是否相同。 | |
ConcurrentHashMap | 线程同步的HashMap | |
WeakHashMap | 键是弱引用。没事别用。 |
Map(不包括IdentityHashMap)的键以及Set成员相同的判定条件为:
①hashCode()返回值一样
②equals()返回true
集合的所谓线程安全只是指集合的方法实现了同步。如果需要在线程中调用多个方法,还是需要加上同步锁。