总括:
Collection是最基本的集合接口,里面存放单个的Object元素。JavaJDK提供的类都继承了Collection的子接口
Map没有继承Collection接口,Map里存放key-value。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。
1、Set
Set 里面放的是无序的不重复的元素。两个实现类:HashSet,LinkedHashSet.HashSet底层也是由HashMap实现,所以存放是无序的。
2、List
List 里面放的是有序的可以重复的元素。
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;
Vector是基于线程安全的,效率低
3、Map
Map存储方式key-value。
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
4、如何选取
list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对
set 一般无序不重复.mapkv 结构 list 有序
就个人而言.list用的比较多. 其次map 最后set 至于什么情况下使用什么集合.看情况了.也不好说.也没那么绝对.