2014-10-09 3 views
-2

정수를 기반으로 목록을 정렬해야하기 때문에 상황에 따라 정수를 Hashmap 값에 추가해야합니다. 아래처럼하고있다정수를 값으로 허용하지 않는 Hashmap

Map hmInspStatus = new HashMap(); 
hmInspStatus.put("Name",Integer.parseInt(strIRName.substring(2,strIRName.length()))); 

정수가 HashMap에 추가 될 수 없다는 오류 메시지가 표시됩니다. 사이트의 일부 게시물을 참조하고 HashSet을 사용하도록 제안했지만 Key, value를 HashSet에 추가 할 수 있습니까?

누구든지 내가 원하는 것을 달성 할 수 있습니까?

감사

+0

원시 형식을 사용 하시겠습니까? – b4hand

+0

해시 세트에 키를 추가 할 수도 있습니다. 콜렉션을 사용할 때 포함시키고 자하는 데이터 유형을 정의해야하는 Generics에 대해 언급 할 필요가 있다는 것을 기억하십시오. –

+0

Map hmInspStatus = 새로운 HashMap ();을 시도했습니다. 그러나 컴파일러는 문법 오류를 던지고 있습니다. "; 예상됩니다.".. – Balu

답변

1

현대 자바 generic 데이터 구조를 사용합니다. 주어진 제네릭 형식을 사용하면 Java가 기본 형식의 자동 저장을 처리합니다.

Map<String, Integer> hmInspStatus = new HashMap<String, Integer>(); 
hmInspStatus.put("Name",Integer.parseInt(strIRName.substring(2,strIRName.length()))); 

업데이트 : OP는 Java 1.3을 사용합니다. 이 버전은 제네릭을 지원할뿐만 아니라 오토 박싱도 지원하지 않습니다. 이 경우 제네릭을 건너 뛰고 수동 복싱을 사용하거나 String에서 Integer을 직접 작성해야합니다.

Map hmInspStatus = new HashMap(); 
hmInspStatus.put("Name", new Integer(strIRName.substring(2,strIRName.length()))); 
+0

클라이언트가 Java 1.3을 사용하고 있습니다. 위의 코드는이 버전을 사용하여 작동합니까? 나는 "진술이 아니다"라고 말하는 오류를 받기 때문에. – Balu

+0

@Balu, Generics가 Java 1.5에 추가되었습니다. 제네릭 만이 Java 1.3에서 누락 된 것이 아니기 때문에 가능하면 클라이언트 소프트웨어를 업그레이드해야합니다. – merlin2011

0

해야 할 것 :

Map hmInspStatus = new HashMap(); 
hmInspStatus.put("Name",(Integer)Integer.parseInt(strIRName.substring(2,strIRName.length()))); 
관련 문제