지도의 키의 크기는 모든 종류의 Map 구현 (예 : HashMap)에서 어떤 종류의 영향을 미칩니 까?지도의 키 크기가 영향을 줍니까?
다음 반복은 Key 객체의 크기에 영향을 받습니까?
Map<Object, Object> map = new HashMap<Object, Object>();
//...
for(Map.Entry<Object, Object> entry : map.entrySet())
{
//...
}
지도의 키의 크기는 모든 종류의 Map 구현 (예 : HashMap)에서 어떤 종류의 영향을 미칩니 까?지도의 키 크기가 영향을 줍니까?
다음 반복은 Key 객체의 크기에 영향을 받습니까?
Map<Object, Object> map = new HashMap<Object, Object>();
//...
for(Map.Entry<Object, Object> entry : map.entrySet())
{
//...
}
아니요, 아니요, 키 객체의 크기는지도를 반복 실행하는 데 중요하지 않습니다.
비 프리미티브 유형의 변수는 Java에서 항상 참조로 사용됩니다 (C++ 에서처럼 객체 자체가 아닙니다). 참조가 작거나 큰 객체를 가리키는 지 여부는 중요하지 않습니다.
어쨌든 참조를 키로 만 사용할 수 있으므로 중요하지 않습니다.
개체에 '프리미티브'와 '개체 참조'만 포함 할 수 있다고 가정하면 개체의 '크기'가 의미하는 바를 실제로 이해하지 못합니다.
HashMap의 경우 hashCode()
함수가 성능에 어느 정도 영향을 미칠 것으로 생각됩니다. 이것이 키의 크기에 의존하는지 여부는 구현hashCode()
에 따라 다릅니다. 유사한 단서가 equals()
방법에도 적용됩니다.
'HashMap'을 반복하는 경우,'hashCode()'메소드는 호출되지 않으므로 상관 없습니다. 'hashCode()'메소드의 복잡성은 맵에 값을 저장하거나 검색 할 때 약간의 영향을 줄 수 있습니다. – Jesper
반복을 허용합니다. 나는 그 질문이 조금 더 일반적인 것 같다고 생각하지만, –
은 내가 기억하는 Object의 크기를 의미했다. –
키가 데이터 유형 (예 : int) 인 경우에도? –
컬렉션에서 프리미티브 유형 –
을 지원하지 않습니다. 맞아요, 그리워요! –