之前学的List是单列集合,每次只能存储一个数据。而Map是双列集合,每次可以存储“一对”数据,它是以键值对的形式来存储数据的,一个键对应一个值。
Map常见方法
注意:put()方法:如果当前添加的键不存在,则直接添加到集合里; 如果当前添加的键已经存在,那么将用新的值覆盖掉旧的值,并返回被覆盖的值,如果没有覆盖,则返回Null。
Map遍历方式
键找值:
1.先创建一个Map,存入键值对。
2.调用keySet()方法,获取Map里的所有的键,并把他们存入变量名为keys的集合中。
3.在keys集合里,我们利用增强for来遍历到每一个键,并调用get()方法来获得其对应的值。
键值对对象:
上面我们是利用集合来储存键,通过遍历这些键来找到对应的值。下面这种方法就是存储整个键值对对象,并调用键值对的getKey()和getValue()方法分别得到他们的键和值。
1.创建一个Map集合,并往里面添加键值对。
2.把所有键值对对象存入另一个集合entries中。
3.利用增强for来遍历集合entries中的每一个键值对,并调用getKey()和getValue()方法分别得到他们的键和对应的值。
Lambda表达式:
1.创建Map,并往里面添加数据。
2.直接调用forEach()方法,重写他的accept方法。
3.最后把匿名内部类改成lambda表达式即可。
HashMap
HashMap特点:
LinkedHashMap
TreeMap
其实这三种实现类和List的三种实现类都差不多,只是存储的数值形式不一样,一个是单数值,一个是键值对。修改排序规则可以参考List。
默认排序方式是按照键的升序来进行排序的,上图打印出来结果: