java: 해시맵 이 작동하지 않음
HashMap<String, int>
하지 않는 것 , 동작하지 않는 것 같습니다.HashMap<String, Integer>
그런지 왜왜런 런아?
Java에서는 기본 유형을 일반 인수로 사용할 수 없습니다.대신 사용:
Map<String, Integer> myMap = new HashMap<String, Integer>();
자동 박스/언박스의 경우는, 코드의 차이는 거의 없습니다.자동 박스는 다음을 기입할 수 있음을 의미합니다.
myMap.put("foo", 3);
다음 대신:
myMap.put("foo", new Integer(3));
자동 박스는 첫 번째 버전이 두 번째 버전으로 암묵적으로 변환되는 것을 의미합니다.자동 언박스는 다음 사항을 기입할 수 있음을 의미합니다.
int i = myMap.get("foo");
다음 대신:
int i = myMap.get("foo").intValue();
의 인 콜intValue()
되지 않으면 키가 됩니다.NullPointerException
예를 들어 다음과 같습니다.
int i = myMap.get("bar"); // NullPointerException
그 이유는 유형 삭제입니다.예를 들어 C#에서는 범용 타입이 런타임에 유지되지 않습니다.그들은 단지 당신이 이것을 하는 것을 돕기 위해 명시적인 캐스팅을 위한 "통사적인 설탕"일 뿐이다.
Integer i = (Integer)myMap.get("foo");
예를 들어, 이 코드는 완전히 합법적입니다.
Map<String, Integer> myMap = new HashMap<String, Integer>();
Map<Integer, String> map2 = (Map<Integer, String>)myMap;
map2.put(3, "foo");
GNU Trove는 이를 지원하지만 제네릭을 사용하지 않습니다.http://trove4j.sourceforge.net/javadocs/gnu/trove/TObjectIntHashMap.html
할 수 .HashMap
int
, 「」double
작동하지 않습니다.예를 들면
Map<String,Integer> m = new HashMap<String,Integer>();
둘 다 객체이기 때문에 이 방법이 효과적입니다.
int는 원시형입니다.여기서 Java에서 원시형의 의미를 읽을 수 있습니다.Map은 입력으로 오브젝트에 대한 인터페이스입니다.
public interface Map<K extends Object, V extends Object>
object는 클래스를 의미하며 이 클래스에서 확장되는 다른 클래스를 만들 수 있지만 int에서 확장되는 클래스는 만들 수 없음을 의미합니다.따라서 int 변수를 개체로 사용할 수 없습니다.귀사의 문제에 대한 두 가지 해결 방법이 있습니다.
Map<String, Integer> map = new HashMap<>();
또는
Map<String, int[]> map = new HashMap<>();
int x = 1;
//put x in map
int[] x_ = new int[]{x};
map.put("x", x_);
//get the value of x
int y = map.get("x")[0];
기본 유형이 아닌 일반 인수에서 참조 유형을 사용할 수 있습니다.그래서 여기에서는
Map<String, Integer> myMap = new HashMap<String, Integer>();
로서 가치를 저장하다
myMap.put("abc", 5);
언급URL : https://stackoverflow.com/questions/1780385/java-hashmapstring-int-not-working
'programing' 카테고리의 다른 글
동적 키를 사용하여 개체 만들기 (0) | 2022.10.07 |
---|---|
소수점 이하 2자리까지 반올림 할 수 있나요? (0) | 2022.10.07 |
IntelliJ에서 Java 디버거를 사용할 때 "Drop Frame"은 무엇을 의미합니까? (0) | 2022.09.25 |
공백 매칭 정규식 - Java (0) | 2022.09.25 |
python에서 assertEquals vs. assertEquals (0) | 2022.09.25 |