集合(三)
五、Set接口
概述
一个不包含重复元素的 collection。
HashSet类
概述
不保证 set 的迭代顺序
特别是它不保证该顺序恒久不变。
HashSet如何保证元素唯一性
底层数据结构是哈希表(元素是链表的数组)
哈希表依赖于哈希值存储
添加功能底层依赖两个方法:
int hashCode()
boolean equals(Object obj)
LinkedHashSet类
概述
元素有序唯一
由链表保证元素有序
由哈希表保证元素唯一
六、Map接口
概述
将键映射到值的对象
一个映射不能包含重复的键
每个键最多只能映射到一个值
key=value
Map接口和Collection接口的不同
Map是双列的,Collection是单列的
Map的键唯一,Collection的子体系Set是唯一的
Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效
成员方法
V put(K key,V value)
V remove(Object key)
void clear()
boolean containsKey(Object key)
boolean containsValue(Object value)
boolean isEmpty()
int size()
V get(Object key)
Set<K> keySet()
Collection<V> values()
Set<Map.Entry<K,V>> entrySet()
Map集合遍历
方式1:根据键找值
获取所有键的集合
遍历键的集合,获取到每一个键
根据键找值
方式2:根据键值对对象找键和值
获取所有键值对对象的集合
遍历键值对对象的集合,获取到每一个键值对对象
根据键值对对象找键和值
HashMap类
概述
键是哈希表结构,可以保证键的唯一性
LinkedHashMap类
概述
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。
七、Collections类
概述
针对集合操作 的工具类
成员方法
public static <T> void sort(List<T> list)
public static <T> int binarySearch(List<?> list,T key)
public static <T> T max(Collection<?> coll)
public static void reverse(List<?> list)
public static void shuffle(List<?> list)
public static <T> void sort(List<T> list, Comparator<? super T> c)