1.List,Set 都继承了Collection接口,Map不是
2.List特点:①可以允许重复的对象;
②可以插入多个null元素;
③是一个有序容器,输出的顺序就是插入的顺序;
④支持for循环通过下标来遍历,也支持迭代器
⑤常用的实现类有ArrayList,LinkedList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每个元素储存本身的地址同时还要存储下一个元素的内存地址,链表增删快,查找慢
ArrayList与Vector:ArrayList是非线程安全的,效率高;Vector是线程安全的,效率慢;
3.Set特点:①无重复对象,重复会被覆盖掉;
②无序容器(元素在set中的存放位置,是根据该元素的hashCode来存放的,位置其实是固定的)
③只能迭代,因为他无序,无法用下标来循环遍历
④只允许一个null元素
⑤常用实现类HashSet,LinkedHashSet,TreeSet
HashSet:基于HashMap实现的HashSet,HashMap,HashSet是非线程安全的,HashTable是线程安全的
TreeSet:实现了SortedSet接口,所以TreeSet是一个根据compare(),compareTo()定义的进行排序的有序容器
4.Map特点:①Map不是collection的子接口或实现类。Map是一个接口;
②Map的每个Entry都持有两个对象,一个键,一个值,Map可能存在相同的值对象,但键对象必须都是唯一的
③Map里可以存在任意个null值,但只能有一个null键
④常用实现类HashMap,HashTable,LinkeHashMap,Treemap
TreeMap也通过compareable,comparetor维护了一个排序顺序
HashMap非线程安全,高效,支持null;
HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap