ArrayList<String> list = new ArrayList<>();
// 非线程安全,有序可重复,允许元素可以有一个或多个null、底层由数组实现、查询较快插入与与删除元素的速度慢
// jdk1.8 初始容量为10扩充容量oldCapacity + (oldCapacity >> 1); 1.5倍
LinkedList<String> linkedList = new LinkedList<>();
// 非线程安全,有序可重复,允许元素可以有一个或多个null,采用链表数据结构,插入和删除速度快,访问速度慢
Vector<String> vector = new Vector<>();
// 线程安全 ,有序可重复,允许元素可以有一个或多个null,底层由数组实现
// 默认容量为10容量扩展2倍
Stack<String> stack = new Stack<>();
// 线程安全继承自Vector,是一种后进先出的模式,只能在栈头进行插入与删除操作,Stack刚创建后是空栈,允许元素可以有一个或多个null
HashSet<String> hashSet = new HashSet<>();
// 非线程安全,无序不可重复的元素,元素只可有一个null值
TreeSet<String> treeSet = new TreeSet<>();
// 非线程安全,有序不可重复的元素,元素中不可以有null值(用二叉树排序)
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
// 非线程安全,继承自HashSet,有序不可重复的元素,元素只可有一个null值(插入顺序)
HashMap<String, String> hashMap = new HashMap<>();
// 非线程安全,可以有一个key值为null或多个value为null
// 默认大小是16,扩充2的指数。
Hashtable<String, String> hashtable = new Hashtable<>();
// 线程安全,key和value都不允许出现null值。
// 默认大小是11,扩充 oldSize*2+1
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>();
// 非线程安全,继承自HashMap,有序,可以有一个key值为null或多个value为null
TreeMap<String, String> treeMap = new TreeMap<>();
// 非线程安全,有序,key值不可以为null可以有多个value为null (用二叉树排序)
WeakHashMap<String, String> weakHashMap = new WeakHashMap<>();
// 非线程安全,可以有一个key值为null或多个value为null
// 当系统内存不够的时候,垃圾收集器会自动的清除没有在其他任何地方被引用的键值对。
IdentityHashMap<String, Object> identityHashMap = new IdentityHashMap<>();
// 允许Key重复的Map(==方式比较两个Key)