찾다

 >  Q&A  >  본문

java - HashMap의 indexFor(int h, int length)에 대한 의심

으아악

HashMap은 키의 해시 값과 Entry[] 배열의 크기를 해시하여 Entry 배열의 아래 첨자 위치를 얻습니다. 디버깅 중에 두 개의 서로 다른 키(해시 값이 다름)가 있다는 것을 방금 알았습니다. indexFor를 통해 얻은 인덱스는 첨자가 동일하다. 즉, 서로 다른 키 값과 서로 다른 해시 값을 가진 두 개의 값이 서로 연결되어 연결 목록을 형성한다는 뜻이다. 예전에 다른 사람이 쓴 글을 읽었던 기억이 있는데, 그것들은 모두다. 해시 값은 동일하지만 키 값이 다르다고 합니다. 값은 연결 목록을 형성하지만 실제 디버깅에서는 다른 결과를 발견했습니다. 문제를 살펴보십시오.

迷茫迷茫2775일 전698

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-17 10:01:13

    으아아아

    다른 객체는 동일한 hashCode를 가질 수 있습니다(hashCode 또는 같지 정의가 잘못되었습니다.)
    다른 hashCode는 동일한 색인을 가질 수 있으며(반대로 달라야 함) 연결 목록이 형성됩니다. Object可能有相同的hashCode(反过来一定不同,除非hashCodeequals定义错了);
    不同的hashCode可能有相同的index(反过来一定不同),这时才会形成链表。

    这里的hashCode可能跟你看到的某些文章的hash

    여기서 hashCode는 여러분이 본 일부 기사의 hash와 동일한 의미를 갖지 않을 수 있습니다. #🎜🎜#

    회신하다
    0
  • 취소회신하다