2017-12-16 6 views
-3

질문 : Google에서 사용하는 HashMap (Map)이 색인 생성 되었습니까? 색인이 생성 된 경우 간단히 설명해 주시겠습니까?Java의 HashMaps - 색인 생성 여부

+1

(환영합니다 (게시 중)!) 여기에서 '색인 생성'은 무엇을 의미하며, 그 정의는 어디서 오는 것입니까? * [RandomAccess'] (https://docs.oracle.com/javase/8/docs/api/java/util/RandomAccess.html) *가 구현되어 있습니까? 만약 이것이 할당이라면 : 인터페이스/클래스가''인덱스 화 '되어 있는지 그리고'HashMap (Map)'에 어떻게 적용되어 있는지를 알기 위해 무엇을 보았습니까? – greybeard

+1

우리는 실제로 "색인 된"의미가 무엇인지조차 모릅니다. 그 단어는 소프트웨어 개발에서 시작하는 누군가에 의해 사용될 때 모호하지 않은 의미가 너무 많습니다. –

답변

1

해시 맵에는 & 값 쌍이 있습니다. 모든 키는 한 번만 존재할 수 있습니다.

당신은 인덱스를 사용하여 값을 얻을 수 있지만, 방법

HashMap.get() 

괜찮은 튜토리얼을 사용할 필요가 없습니다 수는 여기에서 찾을 수 있습니다 : https://beginnersbook.com/2013/12/hashmap-in-java-with-example/

1

HashMaps 이 해시 테이블의 구현입니다. 모든 클래스가 Object 클래스에서 상속하는 hashCode() 함수는 이상적으로 고유 한 정수를 생성하는 데 사용됩니다. hashCode 정수는 객체 값을 낮은 충돌을 가정 할 때 검색 시간이 O (1) 인 위치로 매핑하는 데 사용됩니다. hashCode() 함수가 좋지 않고 HashMap 내의 많은 키들에 대해 동일한 값을 생성하면 검색 시간이 저하 될 수 있습니다 (Map의 항목 수가로드 요소와 현재 용량의 곱을 초과하면 HashMap 자체가 다시 해치됩니다) .

어떤 의미에서 HashMaps는 색인이 생성되며 이는 우수한 성능을 제공합니다. 그러나 인덱스에서 항목을 가져올 수있는 방식으로 색인이 생성되지 않으며 HashMap 클래스는 순서가 유지되는지 보장하지 않습니다. LinkedHashMap을 사용해야합니다.