map系列集合的基本知识

116 阅读1分钟

Map

image.png 之前我们学习完了单列集合,现在我们来了解一下双列集合的相关知识

双列集合的特点:

1.双列集合一次能够存取一对数据,分别为键和值\

2.键不能重复,值能够重复

3.键和值是一一对应的.

4.键+值这个整体 我们称之为"键值对",在java中叫做"entry对象"

屏幕截图 2023-11-30 161316.png

HashMap

大多数情况下,运用Map集合的啥时候都是用多态的办法去

Map<E,E> m=new HashMap<>();

E代表存入的数据类型

*与其他不同的是它的添加方法是put不是add,而put返回值为string类型,返回的是键值对的值

屏幕截图 2023-11-30 161713.png

屏幕截图 2023-12-01 155304.png **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

屏幕截图 2023-12-01 164456.png

重写比较器可以去参考前几期的博客内容