Set
|-- HashSet
底层的数据结构哈希表
不保证迭代顺序,特别是不保证迭代顺序恒久不变(无序)
存储null
不同步
|-- LinkedHashSet
HashSet的子类
底层的数据结构是哈希表+双向链表
哈希表保证了元素的唯一性
链表定义了迭代的顺序,迭代的顺序就是元素插入的顺序
存储null
不同步
|-- TreeSet
底层的数据结构是红黑树
如果创建对象时没有传入比较器,元素就按自然顺序比较
如果创建对象时传入了比较器,元素就按比较器中定义的规则进行比较
元素按比较规则从小到大排序
不同步
API:
E first()
E last()
E pollFirst()
E pollLast()
E ceiling(E e)
E floor(E e)
E higher(E e)
E lower(E e)
// 视图技术
NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
Map
概述:
API:
增(改):
V put(K key, V value)
void putAll(Map<? extends K, ? extends V> m)
删:
V remove(K key)
void clear()
查:
V get(K key)
boolean containsKey(K key)
boolean containsValue(V value)
获取集合属性:
int size()
boolean isEmpty()
遍历:
Set<Map.Entry<K,V>> entrySet()
Set<K> keySet()
Collection<V> values()