広告

Java : SequencedMap - API使用例

SequencedMap (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

検出順序が明確に定義され、両端での操作をサポートし、逆転可能なマップ。 SequencedMapの「見つける」は、SequencedCollectionの要素の「見つける」と似ていますが、順序付けは個々の要素ではなくマッピングに適用されます。

クラス構成

SequencedMap は順序を持ち、かつ、逆転可能な Map です。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.reversed()); // {c=30, b=20, a=10}

map.putFirst("X", 700);
map.putFirst("Y", 800);
map.putFirst("Z", 900);

System.out.println(map); // {Z=900, Y=800, X=700, a=10, b=20, c=30}
System.out.println(map.reversed()); // {c=30, b=20, a=10, X=700, Y=800, Z=900}

メソッド

default Map.Entry<K,V> firstEntry ()

このマップの最初のキーと値のマッピングを返します。マップが空の場合はnullを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

System.out.println(map); // {}
System.out.println(map.firstEntry()); // null

map.putLast("a", 10);

System.out.println(map); // {a=10}
System.out.println(map.firstEntry()); // a=10

map.putLast("b", 20);

System.out.println(map); // {a=10, b=20}
System.out.println(map.firstEntry()); // a=10

map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.firstEntry()); // a=10

default Map.Entry<K,V> lastEntry ()

このマップの最後のキーと値のマッピングを返します。マップが空の場合はnullを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

System.out.println(map); // {}
System.out.println(map.lastEntry()); // null

map.putLast("a", 10);

System.out.println(map); // {a=10}
System.out.println(map.lastEntry()); // a=10

map.putLast("b", 20);

System.out.println(map); // {a=10, b=20}
System.out.println(map.lastEntry()); // b=20

map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.lastEntry()); // c=30

default Map.Entry<K,V> pollFirstEntry ()

このマップの最初のキー値マッピングを削除して返します。マップが空の場合はnullを返します。 (オプションの操作)。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.pollFirstEntry()); // a=10
System.out.println(map); // {b=20, c=30}

System.out.println(map.pollFirstEntry()); // b=20
System.out.println(map); // {c=30}

System.out.println(map.pollFirstEntry()); // c=30
System.out.println(map); // {}

System.out.println(map.pollFirstEntry()); // null

default Map.Entry<K,V> pollLastEntry ()

このマップの最後のキー/値マッピングを削除して返します。マップが空の場合はnullを返します。 (オプションの操作)。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.pollLastEntry()); // c=30
System.out.println(map); // {a=10, b=20}

System.out.println(map.pollLastEntry()); // b=20
System.out.println(map); // {a=10}

System.out.println(map.pollLastEntry()); // a=10
System.out.println(map); // {}

System.out.println(map.pollLastEntry()); // null

default V putFirst (K k, V v)

指定されたマッピングがまだ存在しない場合はマップに挿入し、(オプションの操作)がすでに存在する場合はマッピングの値を置換します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putFirst("a", 10);
System.out.println(map); // {a=10}

map.putFirst("b", 20);
System.out.println(map); // {b=20, a=10}

map.putFirst("c", 30);
System.out.println(map); // {c=30, b=20, a=10}

default V putLast (K k, V v)

指定されたマッピングがまだ存在しない場合はマップに挿入し、(オプションの操作)がすでに存在する場合はマッピングの値を置換します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
System.out.println(map); // {a=10}

map.putLast("b", 20);
System.out.println(map); // {a=10, b=20}

map.putLast("c", 30);
System.out.println(map); // {a=10, b=20, c=30}

SequencedMap<K,V> reversed ()

このマップの逆順viewを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var reversedMap = map.reversed();
System.out.println(reversedMap); // {c=30, b=20, a=10}

System.out.println(reversedMap.reversed()); // {a=10, b=20, c=30}

default SequencedSet<Map.Entry<K,V>> sequencedEntrySet ()

このマップのentrySetのSequencedSetビューを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var entries = map.sequencedEntrySet();
System.out.println(entries); // [a=10, b=20, c=30]
System.out.println(entries.reversed()); // [c=30, b=20, a=10]

default SequencedSet<K> sequencedKeySet ()

このマップのkeySetのSequencedSetビューを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var keys = map.sequencedKeySet();
System.out.println(keys); // [a, b, c]
System.out.println(keys.reversed()); // [c, b, a]

default SequencedCollection<V> sequencedValues ()

このマップのvaluesコレクションのSequencedCollectionビューを返します。

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var values = map.sequencedValues();
System.out.println(values); // [10, 20, 30]
System.out.println(values.reversed()); // [30, 20, 10]

Mapで宣言されたメソッド

clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values

Java API 使用例 : Map」をご参照ください。


関連記事

ページの先頭へ