2016-06-08 3 views
-1

특정 출발점에서 해시 맵을 반복하려고합니다. 지금은 내 코드는 다음과 같습니다for-loop 해시 맵 Java

for (object o : objects.values()) { 
    code in here 
} 

그러나 지금은 특정 키 또는 값에서 루프를 시작할 수 있는지 궁금 메신저?

+5

'HashMap'에는 순서가 없습니다. 어디서부터 시작 하시겠습니까? –

+0

회피 명령에 관심이 있다면 아마도'LinkedHashMap'을 사용해야 할 것입니다. –

+0

지도의 시작 부분부터 시작하여 끝까지 반복해야하지만 목표는 무엇입니까? 우리는 목표가 무엇인지 알면 더 좋고/더 간단하거나 더 효율적인 방법을 찾을 수 있습니다. –

답변

0

당신은 "보기"를 만들 수 starts and ends with certain keysTreeMap 같은 SortedMap 구현을 사용하여 HashMap 대신. (당신은 또한 단순히 특정 키에서 시작하여 tailMap()를 사용하여, 종료 키를 지정하지 않고, 나머지를 처리합니다.)이 실제의 경계로, 처리에서 "세법"을 제외 것

SortedMap<String, Article> encyclopaedia = new TreeMap<>(); 
/* Populate the map. */ 
... 
for (Article val : cyc.subMap("Sonar", "Tax Law").values()) { 
    /* Process only Volume 17. */ 
} 

주 서브 맵은 반 개방 구간이다. 이와 같은 사례를 처리해야하는 경우 추가 전문화 인 NavigableMap (TreeMap으로 구현 됨)을 사용할 수 있습니다.

-1

당신이 entrySet 컬렉션의을 사용하고 반복 할 수 있습니다 ...

예 :

public static void main(String[] args) { 
Map<Integer, String> myMap = new HashMap<Integer, String>(); 
for (Entry<Integer, String> entry : myMap.entrySet()) { 

    System.out.println("The key is:" + entry.getKey()); 
    System.out.println("The value is:" + entry.getValue()); 
} 
}