Java 如何在HashMap中找到相同的键和值

Java 如何在HashMap中找到相同的键和值,java,hashmap,key,Java,Hashmap,Key,我有一个包含名称(键)和日期(值)的HashMap,我需要显示我再次输入的名称是否重复(我正在使用不同的状态进行套接字编程)。例如,我在地图上输入了3个不同的名字,第四次输入了一个重复的名字 我尝试了这些代码(它们运行),但没有成功: HashMap<String, String> map = new HashMap<String, String>(); if(stat.equals("RECEIVE_NAME")){ name = reader.readLine

我有一个包含名称(键)和日期(值)的HashMap,我需要显示我再次输入的名称是否重复(我正在使用不同的状态进行套接字编程)。例如,我在地图上输入了3个不同的名字,第四次输入了一个重复的名字

我尝试了这些代码(它们运行),但没有成功:

HashMap<String, String> map = new HashMap<String, String>();

if(stat.equals("RECEIVE_NAME")){
   name = reader.readLine();
   if(map.containsKey(name)){
      System.out.println("duplicate");
   }
}
HashMap map=newhashmap();
if(stat.equals(“接收名称”)){
name=reader.readLine();
if(地图容器(名称)){
系统输出打印项次(“副本”);
}
}

for(Map.Entry:Map.entrySet()){
if(name.equals(entry.getKey())){
发送消息(“副本”);
}
}

注意:我有一张地图。在这个区块序列之后,放置(名称)when不是重复的。我知道哈希映射不能有重复的键:)

哈希映射不能包含重复的键。如果在已包含键的映射中放置键-值对,则旧值将替换为新值。

map.put()
返回与键关联的上一个值,如果键没有映射,则返回null。因此,您可以存储该返回值并检查其是否为null:

String check = map.put(name);
if(check != null){
    System.out.println("dup: " + check);
}

使用
map.putIfAbsent(name)
不覆盖关联的值。

当映射为空时,如何匹配映射中的任何键?您向我们显示代码,您在其中创建了一个全新的地图,该地图将不包含任何键。在检查重复项之前,请确保正在使用的映射的大小大于0。a
HashMap
不能有重复的键。如果可以插入更多线程,那么使用并发版本您的第一个解决方案应该可以工作。您应该尝试调试器,并确保名称完全相同。注意空间。您可以尝试使用“name=reader.readLine().trim()”。是的,我知道了。我只是想了解如何得到一个字符串,上面写着“replicate”“如果我想说的关键已经存在,好吧,我明白了。在这种情况下,您的第一个解决方案应该有效。验证变量
name
是否与映射中的现有键完全相同。请密切注意任何空白。它必须是准确的。
String check = map.put(name);
if(check != null){
    System.out.println("dup: " + check);
}