Map双列集合:
Map接口和Collection接口有什么不同?
Collection:单列集合的顶层接口,它的子类Set体系具有唯一性,数据结构针对元素有效。
Map:双列集合的顶层接口,键具有唯一性,数据结构只针对键有效。
注意:
HashSet底层依赖的是HashMap。
功能:
添加:
put(); //如果键是第一次添加,返回null,
//如果不是第一次添加,就用新值去替换旧的值,并且将 旧的值返回
删除:
remove(); //根据键,删除该键值对,并且把删除前的值返回
clear();
判断:
isEmpty();
containsKey();
containsValue();
获取:
entrySet()
Set keySet()
get()
Collection values()
长度:
size(); 返回 键值对 的对数
//创建双列集合对象,然后往里边添加元素,然后测试它的方法
HashMap<String,Integer> hm = new HashMap<>();
双列集合如何遍历:
1、根据键找值。
A:获取所有键的集合。 keySet()
B:遍历键的集合,获取到每一个键。 增强for,迭代器
C:根据键找到对应的值。 get()
2、根据 键值对对象 找 键和值。
A:获取 所有键值对 的集合。 Set< Map.Entry<String,Integer> > entrySet();
B:遍历 键值对的集合,获取到每一个 键值对。 增强for,迭代器
C:根据键值对对象,找到对应的键和值。 getKey(),getValue();
HashMap:
如果存储的元素,键是自定义类型,要保证键的唯一,必须重写hashCode(),equals()方法
输出语句直接打印对象,默认调用的是该对象的toString()方法,
如果打印的不是地址值,那么肯定该类或者该类的父类重写了Object类中的toString()方法。
LinkedHashMap有什么特点:
底层是链表实现的,可以保证怎么存,就怎么取。(存取一致)
知识点回顾:
LinkedHasHSet:它是Set体系中,唯一一个可保证 存取一致 的集合类。
TreeMap:
存的键如果是自定义类型,如何保证键的唯一性?
第一种:自然排序
让该自定义类型去实现 Comparable接口,然后重写接口中的compareTo()方法
第二种:比较器接口
创建TreeMap集合对象的时候,传入一个比较器接口Comparator的子类对象,重写接口中的compare()方法 |