java - 使用 HashMap 将整数映射到列表
问题描述
我编写了以下代码将键与字符串列表相关联。当我显示它时,键“2”的列表值被键“4”的值替换。“2”不应该指向它映射到的值?
Map<Integer,List<String>>hm=new TreeMap<Integer,List<String>>();
List<String>l=new ArrayList<String>();
l.add("tree");
l.add("tyre");
hm.put(2, l);
l.clear();
l.add("treaaae");
l.add("tyret");
l.add("treeeqqq");
l.add("tyreqww");
hm.put(4, l);
解决方案
问题是你一直在使用 list l
,所以实际上项目 2 和 4 都指向同一个列表。
这将起作用:
Map<Integer,List<String>>hm=new TreeMap<Integer,List<String>>();
List<String>l=new ArrayList<String>();
l.add("tree");
l.add("tyre");
hm.put(2, l);
List<String>m=new ArrayList<String>();
m.add("treaaae");
m.add("tyret");
m.add("treeeqqq");
m.add("tyreqww");
hm.put(4, m);
推荐阅读
- macos - Microsoft Azure 存储资源管理器不加载本地模拟器存储
- r - 将函数应用于R中的大型数据集时如何间歇性地打印结果?
- java - 通过二进制搜索在数组中查找位置时遇到问题
- functional-programming - 当我们谈论函数中的函数时,究竟什么是纯函数
- git - 适用于命令行和 Intellij 的 lint-staged + commitizen 配置
- amazon-ec2 - Amazon EC2:如何监控我的软件是否正在运行?
- go - 你如何处理 golang 中的 float64 比较?
- ruby-on-rails - 仅限登录用户的编辑和删除功能
- php - 作为函数调用者执行 return
- mysql - 如何安全地存储自由文本用户的答案