ArrayList,LinkedList,Vector 都属于List
List: 元素是有顺序的,元素可以重复,因为每个元素都有自己的角标(索引)。
|-- ArrayList: 底层的数据结构是数组结构,特点是,查询快,增删稍微慢点。线程不同步。
|--LinkedList: 底层使用的是链表数据结构,特点是:增删快,查找慢。
|--Vector: 底层的数据结构是数组结构,线程同步,被ArrayList代替了,现在用的只有他的枚举。
Set: 元素是无序的,且不可以重复(存入和去除的顺序不一定一致),线程不同步。
|--HashSet:底层是哈希表数据结构,根据hashCode和equals方法来确定元素的唯一性
|--TreeSet:可以对Set集合中的元素进行排序(自然循序),自层的数据结构是二叉树。
也可以自己写一个实现类Comparable或者Comparator接口,定义自己的比较器,将其作为参数
传递给TreeSet的构造函数。
Map : 这个集合是存储键值对的,一对一对往里存,而且要确保键的唯一性(01,张三)这样的行驶打印出来
就是 01 = 张三
|--HashTable:底层是哈希表数据结构,不可以存入null键和null值,该集合线程是同步的,效率比较低。出现于jak1.0
|--HashMap: 底层是哈希表数据结构,可以存入null键和null值,线程不同步,效率比较高,代替了HashTable,出现于JDK 1.2