문제

처리 중에 사용하는 해시 맵이 있으며지도에서 값을 증가시키고 싶습니다. 나는 Google을했고 다음 코드가 정확하다는 것을 보여 주었다.

if (colors.containsKey(ckey))
{
    colors.put(ckey, colors.get(ckey) + 1);
} else {
    colors.put(ckey, 1);
}

나는 계속 얻는다 :

연산자 +는 인수 유형 (들) 객체, int에 대해 정의되지 않았습니다.

나는 Java 코더가 아니지만 참조는 객체를 반환한다고 말합니다 ... int를 추출하기 위해 .getValue () 메소드를 사용해야합니까?

어쩌면 내가 다른 일을 잘못하고 있을까요? 흠.

문안 인사.

도움이 되었습니까?

해결책

나는 '처리'에 대해 아무것도 모르지만 위의 코드를 살펴보면 추가하기 전에 값을 정수로 전송해야합니다.

여기서 어떤 버전의 Java가 사용되고 있는지 확실하지 않지만 이와 같은 일을 할 수 있습니다.

if (colors.containsKey(ckey)) 
{ 

  int val = ((Integer) colors.get(ckey)).intValue();
  colors.put(ckey, new Integer(val + 1);
}
else 
{ 
  colors.put(ckey, 1); 
}

다른 팁

기본적으로 해시 맵을 사용하면 키나 값에 사용되는 객체 유형을 확인하지 않고 모든 종류의 객체를 저장할 수 있습니다.

지도의 유형-안전 선언을 사용하여 해시 맵을 선언해야합니다.

HashMap<Color, Integer> colors = new HashMap<Color, Integer>();

(지도의 키가 java.awt.color이고 값은 항상 int라고 가정합니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top