2012-10-17 2 views
0

지도의 키의 크기는 모든 종류의 Map 구현 (예 : HashMap)에서 어떤 종류의 영향을 미칩니 까?지도의 키 크기가 영향을 줍니까?

다음 반복은 Key 객체의 크기에 영향을 받습니까?

Map<Object, Object> map = new HashMap<Object, Object>(); 
//... 
for(Map.Entry<Object, Object> entry : map.entrySet()) 
{ 
    //... 
} 

답변

1

아니요, 아니요, 키 객체의 크기는지도를 반복 실행하는 데 중요하지 않습니다.

비 프리미티브 유형의 변수는 Java에서 항상 참조로 사용됩니다 (C++ 에서처럼 객체 자체가 아닙니다). 참조가 작거나 큰 객체를 가리키는 지 여부는 중요하지 않습니다.

+0

키가 데이터 유형 (예 : int) 인 경우에도? –

+2

컬렉션에서 프리미티브 유형 –

+0

을 지원하지 않습니다. 맞아요, 그리워요! –

0

어쨌든 참조를 키로 만 사용할 수 있으므로 중요하지 않습니다.

0

개체에 '프리미티브'와 '개체 참조'만 포함 할 수 있다고 가정하면 개체의 '크기'가 의미하는 바를 실제로 이해하지 못합니다.

HashMap의 경우 hashCode() 함수가 성능에 어느 정도 영향을 미칠 것으로 생각됩니다. 이것이 키의 크기에 의존하는지 여부는 구현hashCode()에 따라 다릅니다. 유사한 단서가 equals() 방법에도 적용됩니다.

+0

'HashMap'을 반복하는 경우,'hashCode()'메소드는 호출되지 않으므로 상관 없습니다. 'hashCode()'메소드의 복잡성은 맵에 값을 저장하거나 검색 할 때 약간의 영향을 줄 수 있습니다. – Jesper

+1

반복을 허용합니다. 나는 그 질문이 조금 더 일반적인 것 같다고 생각하지만, –

+0

은 내가 기억하는 Object의 크기를 의미했다. –

관련 문제