java - HashMap-java程序问题

标签 java hashmap

我不会解释一些大问题,而是跳过所有这些并列出我正在努力解决的小循环。无论如何,我必须打印 map 的键,所以我使用一种特殊的方式通过交换值和键来打印键。

for (int i = 0; i < elementData.length; i++){
     System.out.print("[" + i + "]");
     for (Entry<HashEntry<E>, Integer> entry : foob.entrySet()){
         if (entry.getValue().equals(i)){
             System.out.print(entry.getKey().toString());
         }
     }
 }

这是我的目标:像这样打印 [0][1][2][3] 直到 20。除此之外,根据我的程序,9 个数字将随机出现在括号中的这些数字之间。 这是我的结果:

[0][1]HashSet$HashEntry@7d4991ad[2][3][4]HashSet$HashEntry@4554617cHashSet$HashEntry@28d93b30[5][6][7][8][9]HashSet$HashEntry@232204a1[10][11]

所以有一些技巧可以让它不打印所有这些看起来像机器语言的东西。无论如何,我必须做什么?看起来 1 件事应该出现在 [1] 之后,2 件事应该出现在 [4] 之后,一些事情应该出现在 [9] 之后,依此类推。 谢谢!

最佳答案

So there's just some trick to make it not print all this machine language looking stuff?

是的。

不要尝试打印未重写Object.toString()的类的实例。 “看起来像机器语言的东西”只是 Object.toString() 的输出。

但是,我怀疑您的真实代码正在执行此操作:

     if (entry.getValue().equals(i)){
         System.out.print(entry.toString());
     }

因为"HashSet$HashEntry@7d4991ad"看起来就像打印HashSet.HashEntry对象时得到的输出。 (另一种可能性是您已使用 HashSet.HashEntry 对象作为 Map 中的键。)

关于java - HashMap-java程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37893858/

相关文章:

java - 如何根据字符串创建数组

Java Zip 文件提取

java - 事务结束时 JPA 隐式刷新未发生

java - 如何在Gattle Feeder中传递java HashMap

java - 缓存最后 n 个查询结果的最有效方法?

java - 如何对 HashMap 的所有键进行循环?

java - 为什么循环禁用其他按钮或 Swing 组件?

java - ORA-01465 : invalid hex number or data mismatch error using hibernate jpa and oracle in coalesce

java - Jersey 在 Restful 服务中将 HashMap 序列化为 json 最简单的方法是什么?

java - 如何从具有多种对象类型的集合中只读取一种类型的特定对象