1、Set
唯一,无序,无索引
HashSet
LinkedHashSet
TreeSet
2、Map
Map双列集合,元素都是以键值对的方式存在的。
Map里面键是唯一的,值是可重复。
不能使用foreach语句直接遍历。
HashSet<E> 是封装了HashMap<K, V>,通过HashMap的键唯一,实现元素的唯一。
TreeSet<E> 是封装了TreeMap<K, V>,通过TreeMap的键唯一,实现元素的唯一。
3、Map的功能
添加:
V put(K key, V value)
键存在,覆盖原来的值,并将被替换的值返回
键不存在,直接添加一对元素,返回null
删除:
void clear() -- 清空
V remove(Object key) -- 根据键删除一对元素
判断:
containsKey(Object key)
containsValue(Object value)
isEmpty()
长度:
int size()
获取:
Collection values() -- 获取值的集合
4、Map的遍历
方式1 -- 通过键找值
通过集合获取所有的键 -- Set keySet()
遍历键的集合 -- 迭代器,增强for
通过每一个键获取其对应的值
V get(K key)
方式2 -- 通过键值对映射关系对象找键和值
通过集合获取键值对映射关系对象的集合 -- Set<Map.Entry> entrySet()
遍历键值对映射关系对象集合
通过键值对映射关系找键和值
Map.Entry
getKey()
getValue()
5、Map集合的子类
HashMap
键的位置,数据结构是哈希表,如果键存储的是自定义对象,处理方式与HashSet一致 -- 即重写hashCode和equals方法
LinkedHashMap -- 保证存取顺序
TreeMap
键的位置,数据结构是二叉树,如果键存储的是自定义对象,处理方式与TreeSet一致
方式1:自然顺序
方式2:比较器顺序
6、Collections工具类常用功能
public static <T extends Comparable<? super T>> void sort(List<T> list)
-- 排序
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
-- 二分查找
public static void reverse(List<?> list)
-- 反转
public static void shuffle(List<?> list)
-- 随机置换
max(Collection c)
根据元素的自然顺序,返回给定 collection 的最大元素。
min(Collection c)
根据元素的自然顺序,返回给定 collection 的最小元素。
|
|