【发布时间】:2023-03-15 07:03:01
【问题描述】:
我有一个相当愚蠢的问题,但我想知道在编译器为我们做之前将哈希映射的输入与equals() 进行比较是否可以实现。我正在尝试计算我在地图中输入重复键值对的次数。
我已经编写了一些代码,但我不知道如何实现equals()。有什么想法吗?
Map<String, String> newMap = new LinkedHashMap<>();
newMap.put("aaa", "bbb");
newMap.put("ccc", "ddd");
newMap.put("eee", "fff");
newMap.put("aaa", "bbb");
System.out.println(newMap.size());
for(String item : newMap.keySet()){
System.out.println(item + " "+newMap.get(item));
}
【问题讨论】:
-
你到底想做什么?你的问题有点不清楚。
-
您希望结构为您执行此操作吗? (它没有 - 您需要自己编写。)根据定义,
Map每个键只会存储一个值,因此如果您使用键"aaa"添加一些值,然后添加第二个具有相同值的值键,第一个是替换。您可以(在您自己的代码中)使用newMap.containsKey()来查看密钥是否已存在于Map中。 -
如果您打算为同一个键存储多个值,则使用
Map<String, List<String>>的结构是很常见的。 -
你不能在这些内置类型上实现 equals 自己。至少提供一个使用 equals 的例子,即使没有实现。
-
equals 与跟踪put调用次数有什么关系?