지도의 값으로 컬렉션을 사용하지 않는 한 특정 버킷에 둘 이상의 값을 사용할 수 없습니다.
Bucket 1 has 2 item(s)
Bucket 2 has 1 item(s)
Bucket 3 has 4 item(s)
:
이
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Playground {
public static void main(String[] args) {
Map<Integer, List<Pair>> map = new LinkedHashMap<Integer, List<Pair>>();
map.put(1, Arrays.asList(new Pair(10, 1) , new Pair(100, 2)));
map.put(2, Arrays.asList(new Pair(2, 1)));
map.put(3, Arrays.asList(new Pair(3, 5), new Pair(6, 10), new Pair(9, 15), new Pair(12, 18)));
for (Map.Entry<Integer, List<Pair>> entry : map.entrySet()) {
System.out.println(String.format("Bucket %d has %d item(s)", entry.getKey(), entry.getValue().size()));
}
}
}
class Pair {
Integer x;
Integer y;
Pair(Integer x, Integer y) {
this.x = x;
this.y = y;
}
}
귀하의 출력은 다음이 될 것입니다 :지도에 대한 값으로 목록을 사용하여 HashMap
의 문서에 put()
무엇을 할 것인가 체크, 당신은 다음 시도 할 수 있습니다 희망이 도움이
나는 내 질문 (또는 어쩌면 내가 그렇게 명확하지 않은 대답)이라고 생각하지 않습니다. 내가 버킷 크기가 5 인 해시 맵/해시 테이블이 있다고 가정합니다. 해시 코드를 계산하기 위해 해쉬 함수로 mod 5 연산자를 사용합니다. 첫 번째 5 개의 키, 즉 1,2,3,4,5는 버킷 1 ~ 5를 차지합니다. 키 6을 값과 함께 삽입하면 버킷 1에 추가됩니다. 따라서 버킷 1의 크기가 이제 2가됩니다. 내가 찾는거야. – Ram27
무슨 뜻인지 알 겠어. 나는 양동이의 정보가 노출 될 것이라고 생각하지 않습니다. [소스 코드] (http://www.docjar.com/html/api/java/util/HashMap.java.html)를 빠르게 확인하면 원하는 정보가 공개적으로 제공되지 않습니다. –
고마워, 그냥 같은 페이지에 있으니, addEntry/createEntry 메소드를 말하는거야? – Ram27