2014-01-15 4 views
-1

해시 맵이 있는데 특정 값이 해시 맵의 키로 있는지 확인해야합니다. 문제는 체크를 처음 수행 할 때, hashmap은 비어 있거나 null 일 수 있습니다. 이 경우 hashmap이 null이거나 비어있는 경우 .containsKey()가 false를 반환하는 작업을 수행합니까? 아니면 추가 null 포인터 체크를 추가해야합니까?.containsKey() 메서드는 null 포인터 예외를 반환합니까?

Map<String, String> groupNameMap = new LinkedHashMap<String, String>(); 
if(abc!= null && !groupNameMap.containsKey(abc)){ 
     usersGroupName = getGroupName(abc,xyz,oci); 


     } 

이 코드가 문제를 해결할 예정입니까? groupNameMap은 비어 있거나 널 (NULL)이 될 수 있습니다.

+0

Map에서 유효한 키는 스택 추적을 게시 할 수있다? – CycDemo

+1

지도가 null 인 경우에는이 방법을 사용하십시오. 지도가 null 인 경우 키를 찾으려면 무엇을 찾고 계십니까? 'containsKey'는 시작할 키를 찾을지도가 없으면 false를 반환 할 수도 없습니다. –

+0

Javadoc을 읽었습니까? 너 해봤 니? –

답변

3
Map<String, String> groupNameMap = new LinkedHashMap<String, String>(); 

containsKey()를 호출하기 전에 맵 인스턴스를 작성하므로 NPE가 발생하지 않습니다.

groupNameMap은 코드로 null 일 수 없습니다.

3

groupNameMap이 null 일 수있는 경우 확인하십시오.

하고, 당신이 abcnull 여부를 확인하지 않아도, null

관련 문제