1. List 是一个有序集合,可以存放重复的数据 (有序:存进是什么顺序,取出时还是什么顺序)

                (1).ArrayList 底层是数组适合查询,不适合增删元素。

                (2).LiskedList 底层是双向链表适合增删元素,不适合查询操作。

                (3).Vector 底层和ArrayList相同,但是Vector是线程安全的,效率较低很少使用

   2. Set 是一个无序集合,不允许放重复的数据 (无序不可重复,存进和取出的顺序不一样)

                (1).HashSet 底层是哈希表/散列表

                (2).TreeSet 继承sartedSet接口(无需不可重复,但存进去的元素可以按照元素的大小自动排序)

   3. Map 是一个无序集合,以键值对的方式存放数据,键对象不允许重复,值对象可以重复。

                (1).HashMap实现不同步,线程不安全。  HashTable线程安全

                (2).HashMap中的key-value都是存储在Entry中的。

                (3).HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性