2013-09-24 39 views
-2

我有一個已經填充的散列表。我必須映射到123刪除hashmap中的值

ABC123我首先聲明一個對象稱爲測試,並給它ABC123

的值,然後檢查我的HashMap包含ABC123。

如果是真的,那將進入if語句,並獲得ABC123的映射,並把它變成一個字符串名爲值

然後,我只想與123

現在我的HashMap ABC123更換關鍵是123,我的價值是123

我將如何擺脫123

的價值我想能夠映射打印出123,得到空

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 

    } 

}

回答

2

使用remove methodMap刪除鍵/值對(參見鏈接的文檔)。

barcodeMap.remove(value); 

...我還沒有對你爲什麼這樣做無論你做什麼,雖然,因爲你添加一個鍵/值對,你顯然不希望在Map清楚。


如果你想關鍵仍然,但有null作爲它的價值,這是更簡單 - 只需添加你真正想要的價值的關鍵。所有現在一條線:

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

這增加的barcodeMap.remove(test)的結果作爲重點barcodeMap,與null值。

+0

當我使用barcodeMap.remove(值);它從我的散列表中完全刪除了條目,我仍然希望該鍵位於那裏,而不是它的映射,例如,如果在我使用barcodeMap.remove(value)之後;並執行以下操作: if(barcodeMap.containsKey(value)){System.out.println(「SUCCCCEEEEEEEESSSSSS」); } 我想成功,但價值被刪除Completley – user2811419

+0

@ user2811419啊,我明白了。我已經更新瞭解決該問題的答案。 –

1

檢查JavaDoc的HashMap。

有一個remove()方法。

+0

當我使用barcodeMap.remove(value);它從我的散列表中完全刪除了條目,我仍然希望該鍵位於那裏,而不是它的映射,例如,如果在我使用barcodeMap.remove(value)之後;並執行以下操作: if(barcodeMap.containsKey(value)){System.out。的println( 「SUCCCCCEEEEEEESSSSSS」); } 我想成功,但價值被刪除completley – user2811419

+1

你可以爲同一個鍵添加一個空值,它應該覆蓋以前的值。 –

2

相反barcodeMap.put(value, barcodeMap.removre(test));使用

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