연락처 이름과 연락처와 연결된 전화 번호 목록 간의 연결에 java.util.HashMap을 사용하고 있으므로 String, List<String>
유형입니다. 그러나 Say key1에서와 똑같은 버킷으로 매핑 할 수있는 키가 두 개 이상있을 수 있습니다. < 1234,5678>은 해시 맵의 인덱스 2에 저장됩니다. 동일한 인덱스에 해시 할 수있는 또 다른 key2를 가질 수 있습니다. 따라서 key1은 < 1234,5678> key2로 대체됩니다 : < 7890,1456> ???? 또는 그것은 연결되어 key1과 key2가 모두 해당 색인에 저장됩니까?내 연락처 기반 Java 용 충돌 처리에 대한 설명
편집 : 아래 코드는 뉴 멕시코 만 반환합니다. 이제이 경우 두 사람 모두 동일한 해시 코드를 얻습니다. 그러면 충돌이 정확합니까? 이 경우 두 값을 연결해서는 안됩니까? 그러니 해시 코드가 2라고 말하면 저장 장치가 보이지 않아야합니다.지도의 2의 인덱스 (OR 배열)에 1-Mexico, 1-New mexico가 맞아야합니다. 따라서 반환 된 값은 멕시코와 뉴 멕시코의 값이어야합니다. 왜 여기에 묶여 있지 않는거야?
public static void main(String[] args)
{
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "Mexico");
map.put(1, "New Mexico");
System.out.println(map.get(1));
}
두 개의 키가 'HashMap'에서 동일한 해시 버킷에 매핑되면 사용자는이를 알 수 없습니다. 'HashMap'은 _all_ 키가 같은 버킷에 매핑되어 있어도 똑같이 작동합니다. 요약하면, 당신은 너무 많이 걱정하고 있습니다. –