删除散列映射中的值

时间:2013-09-24 14:05:51

标签: java hashmap

我已经填充了一个hashmap。我把abc123映射到123。

我首先声明一个名为test的对象,并给它一个值abc123

然后检查我的hashmap是否包含abc123。

如果确实如此,它将进入if语句并获取abc123的映射并将其放入名为value的字符串

然后我想用123替换abc123

现在我的hashmap键是123,我的值是123

我如何摆脱123的价值

我希望能够将映射打印到123并获得null

public void replace1(Map<String, String> barcodeMap) {
  Object test = "abc123";

  if (barcodeMap.containsKey(test)) {

     System.out.println("HERE I WILL PRINT THE MAPPING OF AGILENT         " + barcodeMap.get(test)); //output here is 123

     String value = barcodeMap.get(test);

     System.out.println("THE MAPPING OF VALUE SHOULD BE NULL     " + barcodeMap.get(value)); //output here is null

     barcodeMap.put(value, barcodeMap.remove(test));

     System.out.println("HERE I WILL PRINT THE MAPPING OF AGILENT it should be null:::::   " + barcodeMap.get(test)); //output here is null

     System.out.println("HERE IS THE MAPPING OF VALUE::::::::::::::       " + barcodeMap.get(value)); //output here is 123, i want it to be null here

  }

}

3 个答案:

答案 0 :(得分:2)

使用remove methodMap中移除键/值对(请参阅链接的文档)。

barcodeMap.remove(value);

......我仍然不清楚为什么你正在做你正在做的事情,因为你在Map中添加了一个你显然不想要的键/值对。


如果您希望键保持但是null为其值,那就更简单了 - 只需添加您想要的值的键即可。现在一条线:

barcodeMap.put(barcodeMap.remove(test), null);

这会将barcodeMap.remove(test)的结果添加为barcodeMap的关键字,其值为null

答案 1 :(得分:2)

而是barcodeMap.put(value, barcodeMap.removre(test));使用

barcodeMap.remove(test); barcodeMap.put(value, null);

答案 2 :(得分:1)

检查JavaDoc for HashMap。

有一个remove()方法。