[Java] java的基本set
1. Java集合框架
java的集合包括List、Set、Map。
一个实际可用的集合往往继承或实现了多个接口或类。例如RandomAccess(意味着可以随机访问)、Deque(意味着可以作为双端队列使用)、Iterator(意味着可以以迭代器的方式遍历集合)、List(意味着可以进行列表操作)、Map(意味着保存key-value)、SortedMap(key有序的map)、Set(意味者值具有唯一性)、SortedSet(意味着是有序的唯一集合)。
此外像其他Object一样,它们还继承或实现了其他类,如clonable、serializable。
2.HashSet、TreeSet、LinkedHashSet
HashSet:不保证元素有序、元素最多保存一个,可以保存NULL。使用哈希表实现。
LinkedHashSet :与HashSet类似,但是除了哈希表以外,还有链接列表,可以预知迭代顺序。
TreeSet:采用红黑树结构实现,可以对元素进行排序(默认是自然排序、也可以自定义排序规则)。
以上的Set都不是线程安全的。
3.ArrayList、LinkedList
ArrayList:底层是可变长的数组,可以随机访问,扩展容量时会增长50%的长度。
LinkedList:底层是双链表,可以随机访问,增长开销较少。
以上的List都不是线程安全的。
4.HashMap、LinkedHashMap、HashTable
HashMap:一个散列表,保存key-value数据。线程不安全。
LinkedHashMap:继承自HashMap,加入一个链接列表,使得访问时元素被按照自然顺序进行排序。
HashTable:类似于HashMap,但是线程安全。
浙公网安备 33010602011771号