keySet () 은 해시 맵에서 키 세트 만 반환합니다.이 키 세트를 반복하고이 키를 사용하여 해시 맵에서 값을 가져와야합니다.
귀하의 예에서 해시 맵의 키 유형은 TypeKey
이지만 TypeValue
일반 for 루프에서 지정했기 때문에 컴파일 할 수 없습니다. 다음으로 변경해야합니다.
for (TypeKey name: example.keySet()){
String key = name.toString();
String value = example.get(name).toString();
System.out.println(key + " " + value);
}
Java8 업데이트 :
example.entrySet().forEach(entry->{
System.out.println(entry.getKey() + " " + entry.getValue());
});
키 값을 인쇄 할 필요가없고 해시 맵 값만 필요한 경우 다른 사람의 제안을 사용할 수 있습니다.
또 다른 질문 :이 컬렉션이 제로베이스입니까? 키가 1 개이고 값이 0 또는 1이 될까요?
에서 반환 된 컬렉션 keySet()
은 Set입니다 . 인덱스를 사용하여 Set에서 값을 가져올 수 없으므로 0 기반인지 1 기반인지에 대한 질문이 아닙니다. 해시 맵에 하나의 키가있는 경우 반환 된 keySet ()에는 하나의 항목이 포함되고 크기는 1이됩니다.
Map
의size()
메소드에 대한 문서입니다 . "이지도의 키-값 매핑 수를 반환합니다.지도에Integer.MAX_VALUE
요소 가 더 많은 경우 를 반환합니다Integer.MAX_VALUE
."