2 개의 머시닝해야하는 프로그램이 있습니다 HashMap
. 해시 맵의 키는 String
이고 값은 Integer
입니다. 병합의 특수한 조건은 키가 사전에 이미있는 경우 Integer
을 기존 값에 추가하고이를 대체하지 않아야한다는 것입니다. 지금까지 내가 가지고있는 코드는 NullPointerException
입니다.Java에서 2 HashMaps 병합
public void addDictionary(HashMap<String, Integer> incomingDictionary) {
for (String key : incomingDictionary.keySet()) {
if (totalDictionary.containsKey(key)) {
Integer newValue = incomingDictionary.get(key) + totalDictionary.get(key);
totalDictionary.put(key, newValue);
} else {
totalDictionary.put(key, incomingDictionary.get(key));
}
}
}
NPE는 어떤 라인에 던져 집니까? – BenCole
'totalDictionary' 필드를 초기화 했습니까? – BenCole
totalDictionary는이 함수를 래핑하는 클래스의 이전에 private 멤버 데이터로 선언되었지만 초기화되지 않았습니다. Eclipse는 for 루프가있는 행에서 예외가 발생 함을 보여줍니다. – SmashCode