Collection在每个槽中只能保存一个元素,此容器包括:List、Set、Queue。
1、List:以特定的顺序保存一组元素。
- ArrayList和LinkedList都是List类型,都是按照被插入的顺序保存元素
- 两者不同之处不仅在于执行某些类型的操作时的性能,而且LinkedList包含的操作也多于ArrayList
- ArrayList:长于随机访问元素,但是在List的中间插入和移除元素是较慢
- LinkedList:通过代价较低的在List中间插入和删除操作,提供了优化的顺序访问。在随机访问方面相对较慢,但是它的特性集较ArrayList更大。
2、Set:元素不能重复,每个相同的项只保存一次。
- HashSet:使用的是相当复杂的方式来存储元素的,这种技术是最快的获取元素方式,因此,存储顺序看起来并无实际意义,只会关心某事物是否是某个Set的成员,而不会关心它在Set出现的顺序。
- 如果存储顺序很重要,可以使用TreeSet,它按照比较结果的升序保存对象。
- LinkedHashSet:按照被添加的顺序保存对象。
3、Queue:只允许在容器的一“端”插入对象,并从另外一“端”移除对象。
Map:在每个槽内保存两个对象,即键与值。
- HashMap:键和值在Map中的保存顺序并不是它们的插入顺序,因为HashMap实现使用的是一种非常快的算法来控制顺序。
- TreeMap:按照比较结果的升序保存键。
- LinkedHashMap:按照插入顺序保存键,同时保留了HashMap的查询速度。