5 개의 요소가 포함 된 해시 맵이 있습니다. 내가 (요소 ID) 사용자 입력을 기반으로 요소의 매핑 된 값과 키 값을 표시하고 싶습니다. 예를 들어, 사용자가 2를 입력하면 맵 값과 # 2 요소의 키를 해시 맵에 표시하려고합니다.요소 번호를 기반으로 해시 맵의 요소에 액세스하려면 어떻게해야합니까?
어떻게해야합니까?
감사합니다,이 답변이없는 질문이다
5 개의 요소가 포함 된 해시 맵이 있습니다. 내가 (요소 ID) 사용자 입력을 기반으로 요소의 매핑 된 값과 키 값을 표시하고 싶습니다. 예를 들어, 사용자가 2를 입력하면 맵 값과 # 2 요소의 키를 해시 맵에 표시하려고합니다.요소 번호를 기반으로 해시 맵의 요소에 액세스하려면 어떻게해야합니까?
어떻게해야합니까?
감사합니다,이 답변이없는 질문이다
프라 빈; 언어 또는 플랫폼에 상관없이 (당신이 언급하기를 소홀히 한) 해시 맵은 정의에 따라 정렬되지 않은 컨테이너입니다. 은 요소 # 2가 아닙니다. 해시 맵의 요소는 정의 된 순서로 유지되지 않습니다.
지도는 일반적으로 정렬되지 않은 컨테이너입니다. 그러나 Java를 사용하는 경우 해당 요소에 대해 일관된 순서를 제공하는 LinkedHashMap
클래스를 활용할 수 있습니다.
이 클래스는 여전히 임의 액세스가 아닌 순차 액세스 만 제공하므로 n 번째 요소를 찾으면 O (n)이됩니다. 의 경우 실제로에 임의 액세스 권한을 부여하려는 경우 Map
대신 List
을 사용해야합니다.
나는 이것을 C++에서하려고한다. 거기에 어떤 가능성이 있습니까? – Praveen
@Praveen : 나는 그렇지 않다. –
hm ... 나는 C++을 사용하고 있었고 컨테이너의 요소가 키 값을 기반으로 낮은 순서에서 높은 순서로 정렬되었다고 읽었습니다. – Praveen
요소는 키 값 *의 일부 기능에 따라 배열로 유지 될 수 있습니다. 예를 들어 키 값 mod 31 (키가 int라고 가정) 일 수 있습니다.이 경우 키 5와 37가있는 요소는 둘 다 * 여섯 번째 슬롯에 있습니다. 이러한 이유로 "여섯 번째 요소"에 대한 의미있는 정의는 없습니다. –
이제 키가'int'이고, 실제로 원하는 것은 그 키가 그 특정한'int' 인 엘리먼트입니다. 그러면 그것은 완전히 다른 이야기입니다 - 그것은 정확하게 맵이하는 일입니다. 당신은 int와 object를주고, 같은 int를 주면, 같은 object를 얻을 것입니다. –