나는이 루프를 가지고있다.Java Hashmap Iteration : 한 번에 두 개의 값을 살펴 본다.
for (Map.Entry<Integer, String> entry: collection.entrySet()) {
}
entry
과 그 다음의 것을 비교하고 싶다. 나는 그것을 어떻게 할 것이냐?
나는이 루프를 가지고있다.Java Hashmap Iteration : 한 번에 두 개의 값을 살펴 본다.
for (Map.Entry<Integer, String> entry: collection.entrySet()) {
}
entry
과 그 다음의 것을 비교하고 싶다. 나는 그것을 어떻게 할 것이냐?
이전과 동일합니다. 당신의 HashMap을 사용하는 경우
Map.Entry<Integer, String> previous = null;
for (Map.Entry<Integer, String> entry : collection.entrySet()) {
if (previous != null) {
// compare entry to rpevious
}
previous = entry;
}
루프가 끝나면 예를 들어 oldEntry라는 변수를 설정하고 원하는대로 사용할 수 있습니다.
Map.Entry<Integer,String> oldEntry = null;
for (Map.Entry<Integer, String> entry: collection.entrySet()) {
if (oldEntry != null) doStuff(oldEntry, newEntry);
oldEntry = entry;
}
이것이 for 루프의 사용을 강요하는지, 그리고 대신 iterators를 사용하여 제거해야하는지 궁금합니다. –
루프 대신 iterator를 사용하는 경우는 언제입니까? –
, 당신은 삽입 순서를 보존하지 않음을 명심해야합니다. 삽입 주문이 필요하면 LinkedHashMap을 사용해야합니다. – aberrant80
또는 말하자면, 'SortedMap'입니다. –
@Tom : 정렬 된 맵은 입력 순서 자체를 보존하지 않습니다. 정렬 순서는 보존되는데, 이는 종종 다른 것입니다. – CPerkins