2011-11-29 5 views
4

해시 맵에서 키 객체가 정확히 사용되는 이유를 설명 할 수 있습니까? 메서드가 있습니다 : "put (Object key, Object value) 지정된 값을이 맵의 지정된 키와 연결합니다."키 객체 란 무엇입니까 (해시 맵에서 사용 하시겠습니까?).

그래서 원하는 모든 객체의 핵심은 무엇입니까? 그리고 가치에 의해 그들은 다른 대상 또는 속성을 의미합니다. 혼란 스러울만큼 더 자세한 설명이 필요합니다! 고마워요

+1

안녕하세요, 사용중인 언어를 지정하십시오. 나는 그것이 자바라고 가정하고 있지만 확실하지 않고 다시 태그하는 것을 주저합니다. –

답변

2

what a hashmap is에서 읽어야합니다. 일반적으로 해시는 임의의 데이터 ()를 테이블에 효율적으로 저장하기위한 데이터 구조입니다.

구조에 정보를 저장하는 일반적인 문제는 일단 구조에 있으면 데이터를 빠르게 다시 찾는 방법입니다. 해시는 을 사용하여이 문제를 해결합니다. 값의 키는 테이블에서 값이 저장 될 위치를 결정합니다. 일부는 hash function입니다. 이들 키는 인덱스 어레이에서 사용되는 것과 동일한 방법으로 해시에서 사용되는 "넣어 (객체 키 오브젝트 값)」의 경우

array[index] => some_value 
hash{key} => some_value 

의 '값'객체 데이터는 당신이 저장할와 '키'객체는 해시에서 다시 데이터를 얻을하는 데 사용할 것입니다 :

MyObject myKey = new MyObject(...); 
MyOtherObject myValue = new MyOtherObject(...); 
... 
myHash.put(myKey, myValue); // add myValue to the hash 
... 
MyOtherObject data = myhash.get(myKey); // get myValue out of the hash 
0

당신이 원하는 어떤 물건이라도 열쇠입니까?

일반적으로 말해서, 그렇습니다.

그러나지도에서 키로 사용하는 개체의 구현에주의해야합니다. 그들은 immutable이어야하고 override equals() and hashCode()이어야합니다.

0

의 핵심은 시간이 지남에 (많이) 변경되지 않습니다 뭔가해야한다 고유 한 (해당 맵 내에서) 값에 의미있는 연관성이 있습니다. 예 : SSN, 이름, 번호판 번호 또는 우편 번호. 하지만 기본적으로 당신에게 의미가 있습니다.

관련 문제