? ?区别:
? ?Collection:每个位置对应一个元素
? ? ? ? --List:存放有序,允许重复元素,允许元素为null
? ? ? ? ? ? ?--ArrayList:
? ? ? ? ? ? ? ? ?内部结构是数组;
? ? ? ? ? ? ? ? ?初始容量是10;
? ? ? ? ? ? ? ? ?存放有序,元素可以重复也可以为null;
? ? ? ? ? ? ? ? ?插入和删除的移动速度慢;动态扩容1.5倍;
? ? ? ? ? ? ? ? ?线程不安全;
? ? ? ? ? ?--LinkedList:
? ? ? ? ? ? ? ? 内部结构是双向链表;
? ? ? ? ? ? ? ? 元素存放有序,允许元素为null,可重复;
? ? ? ? ? ? ? ? 线程不安全;
? ? ? ? ? --Vector :
? ? ? ? ? ? ? ? 内部结构是数组,与ArrayList及其相似;
? ? ? ? ? ? ? ? 初始容量是10;
? ? ? ? ? ? ? ? 线程安全;
? ? ? ? ? ? ? ? 动态扩容为原来的两倍;
? ? ? ?--Set:不允许重复元素
? ? ? ? ? ? --HashSet:
? ? ? ? ? ? ? ? 底层实现是HashMap(),所以不允许重复元素(对应的是key);
? ? ? ? ? ? ? ? 存放无序(根据hash确定索引位置);
? ? ? ? ? ? ? ? 允许元素为null;
? ? ? ? ? ?--LinkedHashSet:
? ? ? ? ? ? ? ? 继承HashSet,跟HashSet类似,唯一区别:存放元素有序;
? ? ? ? ? ? ? ? 遍历性能比HashSet好,但插入删除的性能会差点;
? ? ? ? ? ? ??? 允许元素为null;
? ? ? ? ? --TreeSet:
? ? ? ? ? ? ??? 是SortedSet接口的唯一实现类;
? ? ? ? ? ????? 不允许元素重复, 不允许元素为null;
? ? ? ? ? ????? 自动排序元素;
? ?? Map:以Key-Value键值对存在
??????? --HashMap:
? ? ? ? ? ?? 数据结构是数据和链表实现的。Entry[] table,链表存储来解决hash冲突;
? ? ? ? ? ?? 初始容量:16;
? ? ? ? ? ?? 允许key和value为null,key重复会覆盖;
? ? ? ? ? ?? 存放无序;线程不安全;
? ? ? ?--LinkedHashMap:
? ? ? ? ? ?? 数据结构是双向链表;
? ? ? ? ? ?? 存放元素有序;
? ? ? ? ? ?? 线程不安全
? ? ? --TreeMap:
? ? ? ? ? ?? 不允许Key为null, value可以为null;
? ? ? ? ? ?? 元素默认排序(如:字符串->字典);
? ? ? ? ? ?? 线程不安全