데이터가없는 키가 도착하려면 여기에 put
이 있어야합니다.
map.put(key, null)
을 수행 한 경우 해당 키의 데이터는 null
입니다. 메소드에 두 번째 매개 변수를 항상 지정해야합니다. 단지 map.put(key)
일 수 없습니다.
특정 키에 데이터가 없어야한다는 것을 알고 있다면 디버그 모드로 들어가서 myMap.get(myEmptyKey)
에 대한 감시를 시도하고 얻은 결과를 볼 수 있습니다 (빈 개체 또는 다른 데이터가없는 경우 그걸 볼 수 있어야합니다).
편집 : 일부 코드가 당신을 도울 유용 할 수 있지만, 내가 제대로 이해한다면이 같은 것을 할 : 당신이 할 경우,
for (Object obj : list) {
if (matchesCriteriaX(obj)) {
map.put("X", obj);
else if (matchesCriteriaY(obj)) {
map.put("Y", obj);
}
}
음과 map.get("X")
을하려고하지만, 실제로 넣어 결코 그 열쇠에 대한 것이면 (어떤 객체도 기준 X와 일치하지 않기 때문에), 당신은 가장 확실하게 null
이 될 것입니다. 한편
, 당신은
Map<String, List<Object>> map = new HashMap<String, List<Object>>();
map.add("X", new ArrayList<Object>());
map.add("Y", new ArrayList<Object>());
for (Object obj : list) {
if (matchesCriteriaX(obj)) {
List<Object> list = map.get("X");
list.add(obj);
else if (matchesCriteriaY(obj)) {
List<Object> list = map.get("Y");
list.add(obj);
}
}
뭔가를했다면 다음 카테고리 목록 이후 map.get("x").isEmpty()
을 수행하여 비어있는 경우 확인할 수 있습니다 그 방법이있다 (그리고 어떤 객체가 키를 일치하지 않는 경우는 빈 것 기준). 내가 실현
당신이 "빈"요소를 검사하는 디버거를 사용할 수있다? 나는 당신이 무엇을 요구하고 있는지 아직도 명확하지 않다. – Cambium
['Map.containsKey (key)'] (http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/Map.html#containsKey%28java.lang. 개체 % 29)? –
'HashMap' 클래스가 내부적으로 어떻게 동작하는지에 대한 질문 : JDK 설치 디렉토리에있는'src.zip'에서 소스 코드를 검색 할 수 있습니다. – Jesper