我们由这张思维导图来看看我们用到的集合及其优缺点:

我们从右边开始看,
- List、Set、Queue都继承的java.util.Collection接口,而Collection继承的Iterable接口,两种接口都有提供一个remove方法,它们的区别主要有两个方面:1、性能方面:Collection采用的是单链接结构查询,so查询效率比较低。2、容错方面:Collection遍历时会报错,为什么呢,因为集合中对象的个数会变,iterable不会。
- ArrayList和LinkedList都继承的List,特点:可以添加重复元素、有序。ArrayList查询速度较快,LinkedList增删改操作较快。一般这个的问法:ArrayList和LinkedList的区别?
- HashSet、TreeSet和LinkedHashSet都继承的Set,特点:不可以添加重复的元素,无序。HashSet速度是其中最快的,无、序。TreeSet按照比较结果的升序保存对象。LinkedHashSet按被添加的顺序保存对象。一般这个的问法:这三者之间的区别?
- Queue接口,特点:先进先出。看图理解:

5.HashMap、TreeMap和LinkedHashMap都继承的Map接口,HashMap提供了最快的访问技术,没有明显的顺序保存元素,TreeMap按照比较结果升序保存键,LinkedHashMap按照插入顺序保存键且保留了HashMap的查询速度。一般问法:三者的区别?
6.HashMap和HashSet区别

7.List、Set、Map之间的区别

说到这里我想起了一个关于ArrayList的问题,问题是这样问的:ArrayList和Vector的区别?
这个从两个方面答:(1)同步性:ArrayList线程不同步,性能好,Vector相反,但安全。
(2)数据增长:ArrayList的默认容量16增长为原来的乘3除2+1而Vector是原来的2倍