2013-09-24 4 views
-2

이미 채워진 해시 맵이 있습니다. 나는 내가 처음 객체라는 시험을 선언하고 그것을 내 해시 맵이 ABC123이 포함 된 경우 그때 확인 ABC123해시 맵에서 값 삭제

의 값을 제공 123

에 매핑 ABC123 있습니다.

그것이 사실 인 경우는 if 문에 가서 ABC123의 매핑을 얻고 난 다음 지금 단지 123

내 해시 맵과 ABC123 대체 할

문자열이라는 값으로 넣어 것입니다 키는 123이며, 내 가치는 내가 123에 매핑을 인쇄하여 null을 얻을 수 있도록하려면 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 method이 (링크 된 문서를 참조) Map에서 키/값 쌍을 제거합니다.

barcodeMap.remove(value); 

... 난 아직도 당신이 당신이 분명히 Map에서 원하지 않는 키/값 쌍을 추가하고 있기 때문에 당신이 생각하고있는 어떤 일을하는지 이유에 대해 명확하지 않다. 당신이을 유지하기 위해 키를 원하지만 그 값으로 null이있는 경우


, 즉도 간단합니다 - 당신이 실제로 원하는 값으로 키를 추가합니다. 이 null의 값으로, barcodeMap의 핵심으로 barcodeMap.remove(test)의 결과를 추가

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

: 이제 한 줄의 모든.

+0

내가 barcodeMap.remove (값)를 사용 할 때, 그 항목 completley 내 hashmap에서 삭제, 나는 여전히 거기에 키를 원한다, 단지 매핑, 예를 들어 barcodeMap.remove (value); 다음을 수행하십시오. if (barcodeMap.containsKey (value)) { System.out.println ("SUCCCCCEEEEEEESSSSS"); } 성공을 원하지만 값이 삭제되었습니다 completley – user2811419

+0

@ user2811419 아, 알겠습니다. 그 문제를 해결하기 위해 내 대답을 업데이트했습니다. –

1

JavaDoc에서 HashMap을 확인하십시오.

remove() 메소드가 있습니다.

+0

barcodeMap.remove (value)를 사용하면; 그 항목 completley 내 hashmap에서 삭제, 나는 여전히 거기에 키를 원한다, 단지 매핑, 예를 들어 barcodeMap.remove (value); 다음을 수행하십시오. if (barcodeMap.containsKey (value)) { System.out.println ("SUCCCCCEEEEEEESSSSS"); } 성공하고 싶지만 값은 삭제됩니다 completley – user2811419

+1

동일한 키에 null 값을 추가하면 이전 값을 덮어 쓸 수 있습니다. –

2

대신 barcodeMap.put(value, barcodeMap.removre(test)); 사용

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

관련 문제