第1章 Set接口
1.1 特点
1. 无序(存的顺序和取的顺序有可能不同)
2. 不允许重复元素
3. 没有索引
l 注意:最常用的Set集合是HashSet,还有些集合是Set的实现类,但是他不满足所有Set接口的特点(子类比父类更强大),比如LinkedHashSet他是有序的
1.2 判断唯一性规则
首先,拿要添加的元素的哈希值和集合中的每一个元素的哈希值进行比较,如果不相同,直接添加。如果哈希值相同,就去使用equals进行比较,如果equals不相同,就代表不重复,就添加,如果相同,就代表重复,就不添加
总结:先判断hash值(调用hashCode方法),然后再判断equals
第2章 Collections
2.1 概念
l 是操作集合的工具类
2.2 常用方法
l static void swap(List list, int i, int j) :将指定列表中的两个索引进行位置互换
l static void sort(List<T> list) :按照列表中元素的自然顺序进行排序
l static void shuffle(List list):随机置换 ,洗牌,打乱顺序
l static void reverse(List list) :反转
l static void fill(List list, Object obj) :使用指定的对象填充指定列表的所有元素
l static void copy(List dest, List src) :是把源列表中的数据覆盖到目标列表
l static int binarySearch(List list, Object key) 使用二分查找法查找指定元素在指定列表的索引位置
第3章 Map接口
3.1 概念
Map是所有双列集合的根接口。双列集合是采用键值对的方式进行存储的。每个key不可以重复,并且每个key只对应一个value
3.2 常用方法
l 映射功能:
V put(K key, V value) :将key和value的映射关系添加到map集合中
l 获取功能:
V get(Object key) : 根据key,获取value
int size() :获取集合中映射关系的个数
l 判断功能:
boolean containsKey(Object key) :判断是否包含这个key
boolean containsValue(Object value) :判断是否包含这个value
boolean isEmpty() : 判断是否为空
l 删除功能:
void clear() :清空集合中的所有映射关系
V remove(Object key) :根据key去删除映射关系,并返回被删除的value
l 遍历功能:
Set<Map.Entry<K,V>> entrySet() :用于遍历
Set<K> keySet() :返回key的集合
Collection<V> values() :返回value的集合