Map
之前我们学习完了单列集合,现在我们来了解一下双列集合的相关知识
双列集合的特点:
1.双列集合一次能够存取一对数据,分别为键和值\
2.键不能重复,值能够重复
3.键和值是一一对应的.
4.键+值这个整体 我们称之为"键值对",在java中叫做"entry对象"
HashMap
大多数情况下,运用Map集合的啥时候都是用多态的办法去
Map<E,E> m=new HashMap<>();
E代表存入的数据类型
*与其他不同的是它的添加方法是put不是add,而put返回值为string类型,返回的是键值对的值
**remove也是返回值也是返回值,并删除键值对,就相当于数组中根据索引去删除一样
,其他的方法与set相差不大.
Map<String,String> m=new HashMap<>();
m.put("张三","阳光大男孩");
m.remove("张三");
HashMap遍历
对于遍历我们先要想学习几个方法 entrySet
将Map集合转为Set集合遍历
getkey:
获取键值对中的键
getvalue:
获取键值对中的值
遍历一:
Set<Map.Entry<String, String>> en = m.entrySet();
for (Map.Entry<String, String> s : en) {
System.out.println(s.getKey());
System.out.println(s.getValue());
System.out.println(s);
}
遍历二:
en.forEach(s1-> System.out.println(s1));
看着跟Set集合的差不多就是先将把Map转为Set
LinkHashMap
由键决定:有序,不重复,无索引
这里有有序指的是存入取出的顺序一样
底层数据结构依然是哈希表,只是每个键值对与拿书又额外的多了一个双链表的机制存储数据
LinkedHashMap<String,Integer> mp=new LinkedHashMap<>();
mp.put("a",111);
mp.put("b",234);
mp.put("c",151);
mp.put("a",211);
System.out.println(mp);
TreeMap
重写比较器可以去参考前几期的博客内容