2011-06-12 2 views

답변

0

프라 빈; 언어 또는 플랫폼에 상관없이 (당신이 언급하기를 소홀히 한) 해시 맵은 정의에 따라 정렬되지 않은 컨테이너입니다. 요소 # 2가 아닙니다. 해시 맵의 요소는 정의 된 순서로 유지되지 않습니다.

+0

hm ... 나는 C++을 사용하고 있었고 컨테이너의 요소가 키 값을 기반으로 낮은 순서에서 높은 순서로 정렬되었다고 읽었습니다. – Praveen

+0

요소는 키 값 *의 일부 기능에 따라 배열로 유지 될 수 있습니다. 예를 들어 키 값 mod 31 (키가 int라고 가정) 일 수 있습니다.이 경우 키 5와 37가있는 요소는 둘 다 * 여섯 번째 슬롯에 있습니다. 이러한 이유로 "여섯 번째 요소"에 대한 의미있는 정의는 없습니다. –

+0

이제 키가'int'이고, 실제로 원하는 것은 그 키가 그 특정한'int' 인 엘리먼트입니다. 그러면 그것은 완전히 다른 이야기입니다 - 그것은 정확하게 맵이하는 일입니다. 당신은 int와 object를주고, 같은 int를 주면, 같은 object를 얻을 것입니다. –

0

지도는 일반적으로 정렬되지 않은 컨테이너입니다. 그러나 Java를 사용하는 경우 해당 요소에 대해 일관된 순서를 제공하는 LinkedHashMap 클래스를 활용할 수 있습니다.

이 클래스는 여전히 임의 액세스가 아닌 순차 액세스 만 제공하므로 n 번째 요소를 찾으면 O (n)이됩니다. 의 경우 실제로에 임의 액세스 권한을 부여하려는 경우 Map 대신 List을 사용해야합니다.

+0

나는 이것을 C++에서하려고한다. 거기에 어떤 가능성이 있습니까? – Praveen

+0

@Praveen : 나는 그렇지 않다. –

관련 문제