1.前一天重点内容复习
TreeSet集合存储自定义对象如何实现自然排序
TreeSet集合对象要使用无参构造方法,自定义对象要实现Compareable接口,实现里面的ComparaTo()方法
HashSet集合存储自定义对象如何保证元素的唯一性
自定义对象必须重写hashCode()和equals()方法
Collection和Map有什么区别
Collection集合是一个单列集合,只能存储一种引用数据类型
Map集合是双列集合,可以存储键值对(K,V)两种引用数据类型
List集合和Set集合的区别
元素是否重复
List集合重复,Set集合不重复
元素存取顺序是否一致
List集合存取顺序一致,Set集合存取不一致
自定义对象
List集合存储自定义对象去重,使用新建空集合的思想或者选择排序思想完成,自定义对象类必须重写equals()方法和hashCode()方法
Set集合如果有对自定义对象排序的需求,使用TreeSet,根据不同的需求来实现不同的构造方法,如果没有排序需求,则使用hashSet,并且保证自定义对象必须重写equals()方法和hashCode()方法
2.Map<K,V>集合
概念:将键映射到值的对象,表示一系列键值对元素
功能:能够描述现实世界事物的实体类
存储内容:存储为键值对,一个对象的唯一标识加上此对象
注意:集合中的键必须唯一,不能重复,对值没有要求
使用:Map是一个接口不能被实例化,需要通过具体的子实现类来实例化,常用hashMap
hashMap-基于哈希表实现的Map接口
特点:
允许空键和空值,说明它是一个线程不安全,不同步的类,执行效率高
不能保证存入次序和取出次序不变化
3.Map<K,V>集合基本功能
获取
int size()
添加
public V put(K key , V value):添加键值对元素,如果K不重复,则返回null,如果K值重复,则将新添加到值覆盖原来的值,将被覆盖的值返回
删除
public V remove(Object key):删除指定的键,返回此键对应的值
public void clear():暴力删除,清空所有键值对对象
判断
public boolean containsKey(Object key):判断是否包含指定的键
public boolean containsValue(Object value):判断是否包含指定的值
public boolean isEmpty():判断集合是否为空
4.Map<K,V>集合遍历方式
方式1:通过获取所有对象的键,将键放入一个集合中,通过遍历键来找到对应的值
public Set<K> keySet():将集合对象的键存入到一个集合中
public V get(Object key):通过键去找到对应的值,并返回
方式2:获取到所有的键值对对象也称映射项,之后遍历这些对象的键和值
Set<Map.Entry<K,V>> entrySet():获取集合中的所有键值对对象
K getKey():获取键
V getValue():获取值
5.hashMap集合存储不同类型的键如何保证键的唯一
如果集合中的键是非自定义对象(jdk提供的类型),则需要保证此非自定义对象已经重写了equals()方法和hsahCode()方法,可以确保键的唯一性
如果集合中的键是自定义对象,则必须重写equals()方法和hsahCode()方法,可以确保键的唯一性