我已经填充了一个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
}
}
答案 0 :(得分:2)
使用remove
method从Map
中移除键/值对(请参阅链接的文档)。
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()方法。