인터넷 예에서 HashMap
을 연구하고 있는데 왜 put()
이 정수 값을 바꾸지 않고 합산 한 것인지 이해할 수 없습니까? 나는 문자열을 사용하여 시도해 본 결과, 문자열을 대체해야합니다.hashmap이 정수 값을 합산하는 이유
의 Javadoc는 말한다 : 지정된 키를이 맵에
동료 지정된 값. 지도에 이전에 키 매핑이 포함 된 경우 이전 값이 대체됩니다. 그러나
는 :
public class testMap {
public static void main(String[] args) {
HashMap<Dog, Integer> myH = new HashMap<>();
Dog d1 = new Dog("white");
Dog d2 = new Dog("green");
Dog d3 = new Dog("purple");
Dog d4 = new Dog("white");
Dog d5 = new Dog("green");
Dog d6 = new Dog("white");
Dog d7 = new Dog("white");
myH.put(d1, 10);
myH.put(d2, 20);
myH.put(d3, 30);
myH.put(d4, 14);
myH.put(d5, 15);
myH.put(d6, 60);
myH.put(d7, 10);
System.out.println(myH.size());
for (Entry<Dog,Integer> line : myH.entrySet()) {
System.out.println(line.getKey().toString()+" - "+line.getValue());
}
}
}
class Dog {
String color;
Dog(String c){
color = c;
}
@Override
public String toString() {
return color + " dog" ;
}
@Override
public boolean equals(Object o) {
return ((Dog) o).color == this.color;
}
@Override
public int hashCode() {
return color.length();
}
}
나는 질문을 철회. javadoc이 말하는 것처럼 완벽하게 작동합니다. 결과에 충분한주의를 기울이지 않았습니다. 또한 게시물은 지워질 수 있으므로 그 어떤 중요한 정보도 묻지 않습니다.
을 보여주는 것. 너는 무엇을 기대 하느냐? 너는 무엇을 얻었 느냐? – Burkhard
해시 코드 구현이 잘못되었습니다. – Ved
'put()'이 정수 값을 합산 한 이유는 무엇이라고 생각하십니까? – awksp