SequencedMap<K, V> — 양끝 연산과 역방향 순회를 지원하는 순서 있는 맵

SequencedMap<K, V> — 양끝 연산과 역방향 순회를 지원하는 순서 있는 맵

잘 정의된 마주침 순서(encounter order) 를 가지면서도 양쪽 끝에서 연산을 지원하고 역방향으로 뒤집을 수 있는 맵(Map)을 나타내는 인터페이스예요. 순차 컬렉션과 달리 요소가 아닌 매핑(mapping) 을 기준으로 순서가 적용돼요. Java 21에서 도입됐어요.

출처: Java API Reference

본문

public interface SequencedMap<K, V> extends Map<K, V>

SequencedMap의 마주침 순서는 SequencedCollection의 요소 순서와 유사하지만, 순서가 개별 요소가 아닌 매핑에 적용돼요. forEachreplaceAll을 포함한 대량 연산은 이 맵의 매핑을 마주침 순서대로 처리해요.

keySet, values, entrySet, sequencedKeySet, sequencedValues, sequencedEntrySet 메서드가 제공하는 뷰 컬렉션은 모두 이 맵의 마주침 순서를 반영해요.

reversed() 메서드

SequencedMap<K, V> reversed()

이 맵의 역방향 순서 뷰를 반환해요. 역방향 뷰에서는 첫 번째와 마지막 매핑의 개념이 뒤바뀌어요. 예를 들어 다음 코드는 매핑을 마지막 매핑부터 첫 번째 매핑까지 역순으로 제공해요:

var itr = sequencedMap.reversed().entrySet().iterator();

양끝 매핑 메서드

  • firstEntry() — 이 맵의 첫 번째 키-값 매핑을 반환하거나, 맵이 비어 있으면 null을 반환해요.
  • lastEntry() — 이 맵의 마지막 키-값 매핑을 반환하거나, 맵이 비어 있으면 null을 반환해요.
  • pollFirstEntry() — 이 맵의 첫 번째 키-값 매핑을 제거하고 반환하거나, 맵이 비어 있으면 null을 반환해요 (선택 연산).
  • pollLastEntry() — 이 맵의 마지막 키-값 매핑을 제거하고 반환하거나, 맵이 비어 있으면 null을 반환해요 (선택 연산).
  • putFirst(K k, V v) — 매핑이 없으면 주어진 매핑을 삽입하고, 이미 있으면 기존 매핑의 값을 교체해요.
  • putLast(K k, V v) — 매핑이 없으면 주어진 매핑을 삽입하고, 이미 있으면 기존 매핑의 값을 교체해요.

firstEntry, lastEntry, pollFirstEntry, pollLastEntry가 반환하는 Map.Entry 인스턴스는 호출 시점의 매핑 스냅샷을 나타내므로, 선택적 setValue 메서드를 통한 기본 맵 변경은 지원하지 않아요.

이 인터페이스는 Java Collections Framework의 한 구성원이에요.

  • 도입 시점(Since): 21

더 알아보기 (Learn more)