一、List
ArrayList和LinkedList都是List类型,它们都按照元素被插入的顺序保存元素。
1、基本的ArrayList
ArrayList擅长随机访问元素,但是在List的中间插入和移除元素时较慢。
2、LinkedList
LinkedList通过较低的代价在List中间进行插入和删除操作,提供了优化的顺序访问。LinkedList在随机访问方面相对比较慢,但是它所包含的操作比ArrayList多。
二、Set
HashSet、TreeSet和LinkedHashSet都是Set类型,不允许保存相同的元素。Set中最常被使用的就是测试归属性,你可以很容易地询问某个对象是否在某个Set中。正因如此,查找就成为了Set中最重要的操作,因此你通常会选择一个HashSet的实现,它专门对快速查找进行了优化。
Set具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是行为不同。
1、HashSet
HashSet使用的是相当复杂的方式来存取元素的,但它是最快的获取元素的方式,并且它不会按照任何明显的顺序来保存其元素。
2、TreeSet
TreeSet按照比较的结果的升序保存对象。
3、LinkedHashSet
LinkedHashSet按照被添加的顺序保存元素。
三、Map
HashMap、TreeMap和LinkedHashMap属于Map。
1、HashMap
提供了最快的查找技术,但没有按照任何明显的顺序来保存其元素。
2、TreeMap
按照比较的结果的升序保存键。
3、LinkedHaseMap
按照插入的顺序保存键,同时还保留了HashMap的查询速度。