Collection 接口中有两个常用的子接口: List(列表),Set(集)。
List: 可以存放重复的元素,元素存取是有序的。
ArrayList:底层为数组的结构,查询速度快,增删稍慢,线程不同步。
LinkedList:底层为链表结构,查询速度慢,增删快,线程不同步。
Vector:底层为数组结构,线程同步的,但是呗ArrayList替代了,因为效率太低。
Set:不可以放重复元素,元素存取是没有顺序的。
HashSet:数据结构是哈希表。线程不同步,HashCode和equals。
TreeSet:可以对Set 集合中的元素进行排序,数据结构为二叉树
实现Comparable接口,覆盖compareTo(Object obj) 方法
实现Comparator接口,覆盖compare(Object obj1,Object obj2)方法
Map:存储键值对,键不可以重复,值可以重复。
取出map集合元素的两种方式方法ketSet()和entrySet()(单个对象)
Hashtable:数据结构为哈希表,不能存入null键和null值,线程是同步的。
HashMap:数据结构为哈希表,可以存入null键和null值,线程是不同步的。
TreeMap:数据结构为二叉树,线程不同步。
用于给map集合中的键进行排序(排序方法和TreeSet一样,实现comparable和comparator两个接口即可)
PS:其实Set底层就是使用了Map集合。