Java : NavigableMap - API使用例
NavigableMap (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
NavigableMap インタフェースは、
- lowerEntry
- higherEntry
などの大小比較用のメソッドが拡張された Map です。
final NavigableMap<String, Integer> map = new TreeMap<>();
System.out.println(map); // {}
System.out.println(map.isEmpty()); // true
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.size()); // 3
System.out.println(map.lowerEntry("a")); // null
System.out.println(map.lowerEntry("b")); // a=10
System.out.println(map.lowerEntry("c")); // b=20
System.out.println(map.higherEntry("a")); // b=20
System.out.println(map.higherEntry("b")); // c=30
System.out.println(map.higherEntry("c")); // null
メソッド
Map.Entry<K,V> ceilingEntry (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.ceilingEntry("a")); // b=10
System.out.println(map.ceilingEntry("b")); // b=10
System.out.println(map.ceilingEntry("c")); // d=20
System.out.println(map.ceilingEntry("d")); // d=20
System.out.println(map.ceilingEntry("e")); // f=30
System.out.println(map.ceilingEntry("f")); // f=30
System.out.println(map.ceilingEntry("g")); // null
K ceilingKey (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.ceilingKey("a")); // b
System.out.println(map.ceilingKey("b")); // b
System.out.println(map.ceilingKey("c")); // d
System.out.println(map.ceilingKey("d")); // d
System.out.println(map.ceilingKey("e")); // f
System.out.println(map.ceilingKey("f")); // f
System.out.println(map.ceilingKey("g")); // null
NavigableSet<K> descendingKeySet ()
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
final var descKeys = map.descendingKeySet();
System.out.println(descKeys); // [c, b, a]
map.put("d", 40);
System.out.println(map); // {a=10, b=20, c=30, d=40}
System.out.println(descKeys); // [d, c, b, a]
descKeys.remove("b");
System.out.println(map); // {a=10, c=30, d=40}
System.out.println(descKeys); // [d, c, a]
NavigableMap<K,V> descendingMap ()
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
final var descMap = map.descendingMap();
System.out.println(descMap); // {c=30, b=20, a=10}
map.put("d", 40);
System.out.println(map); // {a=10, b=20, c=30, d=40}
System.out.println(descMap); // {d=40, c=30, b=20, a=10}
descMap.remove("b");
System.out.println(map); // {a=10, c=30, d=40}
System.out.println(descMap); // {d=40, c=30, a=10}
Map.Entry<K,V> firstEntry ()
final NavigableMap<String, Integer> map = new TreeMap<>();
System.out.println(map); // {}
System.out.println(map.firstEntry()); // null
map.put("b", 20);
System.out.println(map); // {b=20}
System.out.println(map.firstEntry()); // b=20
map.put("c", 30);
System.out.println(map); // {b=20, c=30}
System.out.println(map.firstEntry()); // b=20
map.put("a", 10);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.firstEntry()); // a=10
Map.Entry<K,V> floorEntry (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.floorEntry("a")); // null
System.out.println(map.floorEntry("b")); // b=10
System.out.println(map.floorEntry("c")); // b=10
System.out.println(map.floorEntry("d")); // d=20
System.out.println(map.floorEntry("e")); // d=20
System.out.println(map.floorEntry("f")); // f=30
System.out.println(map.floorEntry("g")); // f=30
K floorKey (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.floorKey("a")); // null
System.out.println(map.floorKey("b")); // b
System.out.println(map.floorKey("c")); // b
System.out.println(map.floorKey("d")); // d
System.out.println(map.floorKey("e")); // d
System.out.println(map.floorKey("f")); // f
System.out.println(map.floorKey("g")); // f
SortedMap<K,V> headMap (K toKey)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("x", 10);
map.put("y", 20);
map.put("z", 30);
System.out.println(map); // {x=10, y=20, z=30}
final var headMap = map.headMap("z");
System.out.println(headMap); // {x=10, y=20}
map.put("a", 40);
System.out.println(map); // {a=40, x=10, y=20, z=30}
System.out.println(headMap); // {a=40, x=10, y=20}
headMap.remove("x");
System.out.println(map); // {a=40, y=20, z=30}
System.out.println(headMap); // {a=40, y=20}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.headMap("a")); // {}
System.out.println(map.headMap("b")); // {a=10}
System.out.println(map.headMap("c")); // {a=10, b=20}
System.out.println(map.headMap("d")); // {a=10, b=20, c=30}
NavigableMap<K,V> headMap (K toKey, boolean inclusive)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("x", 10);
map.put("y", 20);
map.put("z", 30);
System.out.println(map); // {x=10, y=20, z=30}
final var headMap = map.headMap("y", true);
System.out.println(headMap); // {x=10, y=20}
map.put("a", 40);
System.out.println(map); // {a=40, x=10, y=20, z=30}
System.out.println(headMap); // {a=40, x=10, y=20}
headMap.remove("x");
System.out.println(map); // {a=40, y=20, z=30}
System.out.println(headMap); // {a=40, y=20}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.headMap("a")); // {}
System.out.println(map.headMap("a", true)); // {a=10}
System.out.println(map.headMap("b")); // {a=10}
System.out.println(map.headMap("b", true)); // {a=10, b=20}
System.out.println(map.headMap("c")); // {a=10, b=20}
System.out.println(map.headMap("c", true)); // {a=10, b=20, c=30}
System.out.println(map.headMap("d")); // {a=10, b=20, c=30}
System.out.println(map.headMap("d", true)); // {a=10, b=20, c=30}
Map.Entry<K,V> higherEntry (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.higherEntry("a")); // b=10
System.out.println(map.higherEntry("b")); // d=20
System.out.println(map.higherEntry("c")); // d=20
System.out.println(map.higherEntry("d")); // f=30
System.out.println(map.higherEntry("e")); // f=30
System.out.println(map.higherEntry("f")); // null
System.out.println(map.higherEntry("g")); // null
K higherKey (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.higherKey("a")); // b
System.out.println(map.higherKey("b")); // d
System.out.println(map.higherKey("c")); // d
System.out.println(map.higherKey("d")); // f
System.out.println(map.higherKey("e")); // f
System.out.println(map.higherKey("f")); // null
System.out.println(map.higherKey("g")); // null
Map.Entry<K,V> lastEntry ()
final NavigableMap<String, Integer> map = new TreeMap<>();
System.out.println(map); // {}
System.out.println(map.lastEntry()); // null
map.put("b", 20);
System.out.println(map); // {b=20}
System.out.println(map.lastEntry()); // b=20
map.put("a", 10);
System.out.println(map); // {a=10, b=20}
System.out.println(map.lastEntry()); // b=20
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.lastEntry()); // c=30
Map.Entry<K,V> lowerEntry (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.lowerEntry("a")); // null
System.out.println(map.lowerEntry("b")); // null
System.out.println(map.lowerEntry("c")); // b=10
System.out.println(map.lowerEntry("d")); // b=10
System.out.println(map.lowerEntry("e")); // d=20
System.out.println(map.lowerEntry("f")); // d=20
System.out.println(map.lowerEntry("g")); // f=30
K lowerKey (K key)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("b", 10);
map.put("d", 20);
map.put("f", 30);
System.out.println(map); // {b=10, d=20, f=30}
System.out.println(map.lowerKey("a")); // null
System.out.println(map.lowerKey("b")); // null
System.out.println(map.lowerKey("c")); // b
System.out.println(map.lowerKey("d")); // b
System.out.println(map.lowerKey("e")); // d
System.out.println(map.lowerKey("f")); // d
System.out.println(map.lowerKey("g")); // f
Map.Entry<K,V> pollFirstEntry ()
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("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
Map.Entry<K,V> pollLastEntry ()
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("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 NavigableMap<K,V> reversed ()
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("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}
NavigableMap<K,V> subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("x", 10);
map.put("y", 20);
map.put("z", 30);
System.out.println(map); // {x=10, y=20, z=30}
final var subMap = map.subMap("a", true, "y", true);
System.out.println(subMap); // {x=10, y=20}
map.put("a", 40);
System.out.println(map); // {a=40, x=10, y=20, z=30}
System.out.println(subMap); // {a=40, x=10, y=20}
subMap.remove("x");
System.out.println(map); // {a=40, y=20, z=30}
System.out.println(subMap); // {a=40, y=20}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.subMap("a", true, "c", true)); // {a=10, b=20, c=30}
System.out.println(map.subMap("a", true, "c", false)); // {a=10, b=20}
System.out.println(map.subMap("a", false, "c", true)); // {b=20, c=30}
System.out.println(map.subMap("a", false, "c", false)); // {b=20}
System.out.println(map.subMap("a", true, "a", false)); // {}
System.out.println(map.subMap("a", true, "b", false)); // {a=10}
System.out.println(map.subMap("a", true, "c", false)); // {a=10, b=20}
System.out.println(map.subMap("a", true, "d", false)); // {a=10, b=20, c=30}
System.out.println(map.subMap("a", true, "d", false)); // {a=10, b=20, c=30}
System.out.println(map.subMap("b", true, "d", false)); // {b=20, c=30}
System.out.println(map.subMap("c", true, "d", false)); // {c=30}
System.out.println(map.subMap("d", true, "d", false)); // {}
SortedMap<K,V> subMap (K fromKey, K toKey)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("x", 10);
map.put("y", 20);
map.put("z", 30);
System.out.println(map); // {x=10, y=20, z=30}
final var subMap = map.subMap("a", "z");
System.out.println(subMap); // {x=10, y=20}
map.put("a", 40);
System.out.println(map); // {a=40, x=10, y=20, z=30}
System.out.println(subMap); // {a=40, x=10, y=20}
subMap.remove("x");
System.out.println(map); // {a=40, y=20, z=30}
System.out.println(subMap); // {a=40, y=20}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.subMap("a", "a")); // {}
System.out.println(map.subMap("a", "b")); // {a=10}
System.out.println(map.subMap("a", "c")); // {a=10, b=20}
System.out.println(map.subMap("a", "d")); // {a=10, b=20, c=30}
System.out.println(map.subMap("a", "d")); // {a=10, b=20, c=30}
System.out.println(map.subMap("b", "d")); // {b=20, c=30}
System.out.println(map.subMap("c", "d")); // {c=30}
System.out.println(map.subMap("d", "d")); // {}
SortedMap<K,V> tailMap (K fromKey)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
final var tailMap = map.tailMap("b");
System.out.println(tailMap); // {b=20, c=30}
map.put("d", 40);
System.out.println(map); // {a=10, b=20, c=30, d=40}
System.out.println(tailMap); // {b=20, c=30, d=40}
tailMap.remove("b");
System.out.println(map); // {a=10, c=30, d=40}
System.out.println(tailMap); // {c=30, d=40}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.tailMap("a")); // {a=10, b=20, c=30}
System.out.println(map.tailMap("b")); // {b=20, c=30}
System.out.println(map.tailMap("c")); // {c=30}
System.out.println(map.tailMap("d")); // {}
NavigableMap<K,V> tailMap (K fromKey, boolean inclusive)
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
final var tailMap = map.tailMap("a", false);
System.out.println(tailMap); // {b=20, c=30}
map.put("d", 40);
System.out.println(map); // {a=10, b=20, c=30, d=40}
System.out.println(tailMap); // {b=20, c=30, d=40}
tailMap.remove("b");
System.out.println(map); // {a=10, c=30, d=40}
System.out.println(tailMap); // {c=30, d=40}
final NavigableMap<String, Integer> map = new TreeMap<>();
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.tailMap("a")); // {a=10, b=20, c=30}
System.out.println(map.tailMap("a", false)); // {b=20, c=30}
System.out.println(map.tailMap("b")); // {b=20, c=30}
System.out.println(map.tailMap("b", false)); // {c=30}
System.out.println(map.tailMap("c")); // {c=30}
System.out.println(map.tailMap("c", false)); // {}
Mapで宣言されたメソッド
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
「Java API 使用例 : Map」をご参照ください。
SequencedMapで宣言されたメソッド
sequencedEntrySet, sequencedKeySet, sequencedValues
「Java API 使用例 : SequencedMap」をご参照ください。
SortedMapで宣言されたメソッド
comparator, entrySet, firstKey, keySet, lastKey, putFirst, putLast, values
「Java API 使用例 : SortedMap」をご参照ください。
関連記事
- API 使用例
- Collection (コレクション)
- Collections (コレクション操作)
- Comparable
- Comparator
- Iterator
- List (リスト)
- Map (マップ)
- Map.Entry (キーと値のペア)
- Queue (キュー)
- AbstractQueue
- ArrayBlockingQueue (ブロッキング・配列キュー)
- ArrayDeque (両端キュー)
- BlockingDeque (ブロッキング・両端キュー)
- BlockingQueue (ブロッキング・キュー)
- ConcurrentLinkedDeque (並列処理用・両端キュー)
- ConcurrentLinkedQueue (並列処理用キュー)
- Deque (両端キュー)
- LinkedBlockingDeque (ブロッキング・リンク両端キュー)
- LinkedBlockingQueue (ブロッキング・リンクキュー)
- LinkedList (二重リンク・リスト)
- PriorityBlockingQueue (ブロッキング・優先度付きキュー)
- PriorityQueue (優先度付きキュー)
- RandomAccess
- Set (セット)
- Spliterator