java - 从 HashMap 打印值不返回值本身
问题描述
我有一个 HashMap 如下:
HashMap<Integer, List<MyClassObj>> hmap = new HashMap<Integer, List<MyClassObj>>();
在一个循环中,我追加到一个列表,然后我放入一个键值对,其中列表是我的hmap
对象的值
如何为每个键提取列表中的值?
for (Integer k: hmap.keySet()) {
String key = k.toString();
String value = hmap.get(k).toString();
System.out.println(key + " " + value);
}
这输出:
43115 [mypackage@176f3f8, mypackage@176f3f8, mypackage@176f3f8]
40715 [mypackage@176f3f8, mypackage@176f3f8, mypackage@176f3f8]
为什么这会返回我的包裹和哈希键?
如何查看每个列表的内容?
解决方案
您需要覆盖类toString()
中的方法MyClassObj
。
例如,假设您的对象具有name
并且age
@Override
public String toString() {
return "Name: '" + this.name + "', Age: '" + this.age + "'";
}
然后,您需要遍历 的元素List
并将它们打印出来(使用toString()
方法)。例如,
for(int i = 0; i < youObjectInstance.size(); i++) {
System.out.println(youObjectInstance.get(i).toString());
}
作为一般建议,您应该toString()
为您创建的几乎每个对象覆盖方法,以便您可以根据用例以方便的格式打印它。
推荐阅读
- java - Spring Maven 从资源文件夹中读取
- ios - 如何从在 Xamarin Forms 中重写的 Xcode 应用程序访问现有核心数据?
- r - 将 Rscript 与 .Rnw 文件和 commandArgs() 一起使用
- php - 使用静态 libpng 编译 PHP
- python - 如何组合相似字符串的数值?
- sql-server - SQL Server 中的 REGEXP_INSTR 等效项
- python - 使用python读取二进制文件(.NBF)并解码,使用chardet.dect
- java - 通知小图标颜色不是我设置的颜色
- python - 异步更新仅显示 1 个值
- angular - 使用 PDFJS 和 Angular 7 打印预览