HashMap의 첫 번째 요소와 두 번째 요소를 별도로 액세스 할 수 있습니까? 내가HashMap의 요소에 액세스
Map<Integer, Integer> testMap = new HashMap<Integer, Integer>();
int f = testMap.first();
내가 그런 기능이 없다는 것을 알고는 HashMap이있는 경우 는 내 말은,하지만 어떻게 그 요소에 액세스 할 수 있습니까?
HashMap의 첫 번째 요소와 두 번째 요소를 별도로 액세스 할 수 있습니까? 내가HashMap의 요소에 액세스
Map<Integer, Integer> testMap = new HashMap<Integer, Integer>();
int f = testMap.first();
내가 그런 기능이 없다는 것을 알고는 HashMap이있는 경우 는 내 말은,하지만 어떻게 그 요소에 액세스 할 수 있습니까?
HashMap
은 순서를 유지하지 않습니다.
이 클래스는지도의 순서를 보장하지 않습니다. 특히 에서 주문이 일정하게 유지 될 것이라고 보장하지 않습니다.
당신은 삽입 순서 또는 TreeMap
을 유지 LinkedHashMap
를 사용할 수 있습니다.
이 구현은, 그것의 모든 항목을 통해 실행하는 이중의 링크리스트를 보관 유지한다고 HashMap의 차이가
. 이 연결된 목록은 일반적으로 의 키가지도 (삽입 주문)에 삽입 된 순서 인 반복 순서를 정의합니다. 키가지도에 다시 삽입되는 경우 삽입 순서는 영향을받지 않습니다. 은 (A 키 (K)는지도 m 재 삽입되면 m.put ( m.containsKey (k)는 직전 호출에 true를 반환 할 때, K는, V)가 호출된다.)
맵은 키의 자연 순서에 따라 정렬되거나 사용되는 생성자에 따라 맵 작성시 제공되는 Comparator
에 따라 정렬됩니다.
지도가 정렬되지 않았으므로 '첫 번째 항목'과 같은 것이 없으므로 Map (또는 HashMap)에 대한 get-by-index 메서드가없는 이유이기도합니다.
당신은이 작업을 수행 할 수 있습니다 :
Map<Integer, Integer> map = ...; // wherever you get this from
// Get the first entry that the iterator returns
Map.Entry<Integer, Integer> entry = map.entrySet().iterator().next();
(Note: Checking for an empty map omitted).
귀하의 코드는지도에있는 모든 항목을하지 않고 즉시 반환 (및 휴식 루프 만점) 찾았다 첫 번째 항목으로.
참고 : iterator()
을 호출한다고해서 전체지도를 반복하는 것은 아닙니다.
no. 당신은 HapMap/HashTable이 키와 값을 함께 가지고있는 엔트리 (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Map.Entry.html)에 데이터를 저장할 수 없습니다.
항상 entrySet()의 Iterator를 가져 와서 항목에 액세스 할 수 있습니다. 또는 키 집합 만 반환하는 keySet()을 얻으려고합니다.
희망이 도움이됩니다.
firstKey
및 lastKey
과 같은 방법이있는 LinkedHashMap
을 사용할 수 있습니다.그러나 2 차 키 당신은 반복해야하고 HashMap
이 추가 된 순서 요소를 기억하지 않기 때문에, "첫 번째 요소는 '하지 않는 당신은 키가지도
HashMap <Integer, Integer> testMap = new HashMap <Integer, Integer>();
testMap.put (1, 2);
testMap.put (2, 3);
Iterator <Integer> i = testMap.values().iterator();
System.out.println ("First element: " + i.next());
System.out.println ("Second element: " + i.next());
주에 입력 된 순서대로 요소를 얻을 필요한 의미는 "처음 추가됨"입니다.
Iterator it = testMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry) it.next();
System.out.println("Key"+pairse.getKey());
System.out.println("Value"+pairs.getValue());
}
Map 항목의 첫 번째 요소를 가져 오는 것이므로 testMap.put (1, 2); 그 1과 2를 따로 따로 액세스하여 다른 요소와 비교하거나 1 또는 2로 다른 것을 할 수 있습니까? – user2081119
@ user2081119 키와 연관된 값을 반환하는'Map # get (key)'에 의해 map으로부터 값을 검색 할 수 있습니다. 없는. –
오, 그게 다야! 고마워 .1 – user2081119