一、 List
一个有序的collection,可据下标获取对应元素。允许出现重复元素e1.equals(e2),如果需要还可以允许出现多个null值。
二、Set
如同set的数学定义,不允许出现重复元素。
三、 ArrayList
实现List接口的可变大小数组。扩容时默认1.5倍。与Vector基本一样,只是unsynchronized,若不必线程安全,推荐使用ArrayList。
四、 Vector
扩容时默认double。线程安全的。
五、Map
键值对的映射,无重复键,一键至多映射一值。
六、 HashMap
基于hash table的Map接口的实现。允许null键、null值。非线程安全。Iterator迭代有Fail-Fast机制。容量为 2n2n(power of 2),扩容时容量加倍,达到上限后设为上限值。
七、 HashTable
不允许null健值。继承Dictionary抽象类。Enumerator迭代器不是fail-fast的。初始容量为素数。
八、 HashSet
由hash table(实际为hash map)实现,实现Set接口。一个加壳的hash map。
九、 ConcurrentHashMap
引入分段锁。尚不明白。
初稿,待补充。
本文详细介绍了Java集合框架中List、Set、ArrayList、Vector、Map、HashMap、HashTable、HashSet及ConcurrentHashMap等核心组件的特点与应用场景。包括它们之间的区别、是否支持null值、线程安全性以及扩展机制等内容。

被折叠的 条评论
为什么被折叠?



