Java Map 怎么用
平时做项目写代码时,你肯定遇过这种场景:要存“用户姓名对应手机号”“商品ID对应价格”这类一一对应的关系,用普通变量得写好多个,特别麻烦。这时候Java里的Map就能帮上大忙——它就像个带索引的收纳盒,能快速把两个关联的东西装在一起,找的时候不用翻遍整个盒子。
先搞懂Map的核心:键值对
Map最基础的逻辑就是“键(Key)”和“值(Value)”的配对,你可以把键当成你给物品贴的标签,值就是物品本身,而且同一个收纳盒里,标签不能重复。比如你把“张三”(键)和“13xxxxxxxxx”(值)放进Map,下次要找张三的电话,直接搜“张三”这个标签就行,不用一个个翻之前存的记录。

举个生活化的例子:外卖APP里,“订单号”就是键,“订单详情(买了啥、地址在哪)”就是值。不管你有几百个订单,只要输对订单号,一秒就能调出对应的详情,这就是Map的优势——查询速度特别快。
最常用的3种Map,选对才不踩坑
Java里常用的Map有3种,别乱用,不然可能出问题:
**HashMap:平时用得最多的“万能选手”**
它的特点是“查得快、写得快”,但存的顺序和放进去的不一样。比如你按“张三、李四、王五”的顺序存,取的时候可能变成“李四、张三、王五”。适合不在乎顺序,只关心能不能快速找的场景,比如存临时的用户会话信息。
**LinkedHashMap:“记顺序的选手”**
它是HashMap的“升级版”,会记住你放元素的先后顺序。比如你要做一个“最近浏览商品”的功能,用户浏览了A、B、C三个商品,用LinkedHashMap就能按顺序存,下次打开页面直接按浏览时间展示,不会乱。
**TreeMap:“排好队的选手”**
它会自动给元素排序,比如按数字大小、字母顺序排。如果你要存“班级学生成绩,按分数从高到低排”,用TreeMap就不用手动排序,它会自己把分数(键)对应的学生(值)按分数排好,省不少事。
日常必用的3个操作,新手先记牢
刚接触Map不用学复杂的方法,先搞定这3个最常用的:
**存数据:put()方法**
就像往收纳盒里放东西,参数是“键”和“值”,比如map.put("张三", "13xxxxxxxxx")。如果放的键已经存在,新的值会覆盖旧的,比如你再放map.put("张三", "139xxxxxxxxx"),之前的电话就会更新成新的。
**取数据:get()方法**
要拿对应的值就用键当参数,比如String phone = map.get("张三"),就能拿到张三的电话。如果键不存在,会返回null,所以用的时候最好加个判断,不然可能出bug。
**遍历数据:把所有键值对拿出来**
如果要把Map里的内容都读出来,别用一个个找的笨方法,用forEach就行,比如map.forEach((key, value) -> System.out.println(key + "的电话是" + value)),一行代码就能把所有键和值打出来,比循环简单多了。
最后再提醒个小细节:Map里的键不能重复,要是重复放同一个键,旧值会被覆盖,所以存数据的时候别瞎写重复的键。只要搞懂键值对的逻辑,选对合适的Map,日常开发里的配对数据问题,基本都能搞定。