Map<String,String> mapp=new HashMap<>();
mapp.put("1", "abc");
mapp.put("1", "def");

System.out.println(mapp.size());
System.out.println(mapp.get("1"));
System.out.println(mapp);


o / p

1
def
{1=def}


如何获取'abc'值并在地图中以大小为1的形式呈现其值。

可以是哈希冲突的情况吗,因为密钥相同,它可以产生相同的哈希码并存储在相同的索引中吗?

最佳答案

mapp.put("1", "def");将返回键“ 1”的先前值“ abc”。

您可以通过以下方式看到它:

System.out.println(mapp.put("1", "def"));


之后,由于已被覆盖,因此无法获得“ 1”键的原始值。

这是在put的Javadoc中指定的:


  V java.util.Map.put(K键,V值)
  
  将指定值与该映射中的指定键相关联(可选操作)。如果该映射先前包含该键的映射,则旧值将替换为指定值。 (仅当m.containsKey(k)返回true时,才认为映射m包含键k的映射。)
  
  返回值:
  
  与key关联的先前值;如果没有key映射,则为null。

关于java - 如何在HashMap中获取重写的键值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48400478/

10-09 01:05