【Java入門】NavigableMapの使い方のまとめ

JavaのNavigableMapの使い方について記載しています。

NavigableMapの使い方

NavigableMap は、SortedMapインタフェースを継承しており、次の機能を使用することができます。

1. Mapの最初・最後の要素を取得
2. Mapの最初・最後の要素を取得と同時に削除
3. Mapから指定したキー値と同じ、もしくはもっとも近い要素を取得
4. Mapから指定した条件に該当する部分要素を取得
5. Mapに格納されている要素を逆順で取得
6. Mapに格納されている要素のkey一覧を取得

1. Mapの最初・最後の要素を取得

次のメソッドを使用します。

メソッド 戻り値 処理
firstEntry() Map.Entry<K,V> Mapから最小のキーの、キーと値を取得します。
lastEntry() Map.Entry<K,V> Mapから最大のキーの、キーと値を取得します。

実行例( firstEntry() )

実行例( lastEntry() )

2. Mapの最初・最後の要素を取得と同時に削除

次のメソッドを使用します。

メソッド 戻り値 処理
pollFirstEntry() Map.Entry<K,V> Mapから最小のキーの、キーと値を取得し、削除します。
Mapが空の場合は、nullを返します。
pollLastEntry() Map.Entry<K,V> Mapから最大のキーの、キーと値を取得し、削除します。
Mapが空の場合は、nullを返します。

実行例( pollFirstEntry() )

実行例( pollLastEntry() )

3. Mapから指定したキー値と同じ、もしくはもっとも近い要素を取得

次のメソッドを使用します。

メソッド 戻り値 取得値(X) 処理
lowerEntry
(K key)
Map.Entry
<K,V>
key > X 指定したキー未満で最大のキー値を持つ、キーと値のペアを返します。
該当するキーが存在しない場合は、nullを返します。
lowerKey
(K key)
K key > X 指定したキー未満で最大のキー値を返します。
該当するキーが存在しない場合は、nullを返します。
floorEntry
(K key)
Map.Entry
<K,V>
key >= X 指定したキー以下最大のキー値を持つ、キーと値のペアを返します。
該当するキーが存在しない場合は、nullを返します。
floorKey
(K key)
K key >= X 指定したキー以下最大のキー値を返します。
該当するキーが存在しない場合は、nullを返します。
higherEntry
(K key)
Map.Entry
<K,V>
key < X 指定したキーより大きく最小のキー値を持つ、キーと値のペアを返します。
該当するキーが存在しない場合は、nullを返します。
higherKey
(K key)
K key < X 指定したキーより大きく最小のキー値を返します。
該当するキーが存在しない場合は、nullを返します。
ceilingEntry
(K key)
Map.Entry
<K,V>
key <= X 指定したキー以上で最小のキー値を持つ、キーと値のペアを返します。
該当するキーが存在しない場合は、nullを返します。
ceilingKey
(K key)
K key <= X 指定したキー以上で最小のキー値を返します。
該当するキーが存在しない場合は、nullを返します。

3-1. lowerEntry・lowerKey

指定したキー未満で最大のキーを取得することができます。

実行例( lowerEntry(K key) )

実行例( lowerKey(K key) )

3-2. floorEntry・floorKey

指定したキー以下最大のキーを取得することができます。

実行例( floorEntry(K key) )

実行例( floorKey(K key) )

3-3. higherEntry・higherKey

指定したキーより大きく最小のキーを取得することができます。

実行例( higherEntry(K key) )

実行例( higherKey(K key) )

3-4. ceilingEntry・ceilingKey

指定したキー以上で最小のキーを取得することができます。

実行例( ceilingEntry(K key) )

実行例( ceilingKey(K key) )

4. Mapから指定した条件に該当する部分要素を取得

次のメソッドを使用します。

メソッド 戻り値 取得値(X) 処理
headMap
(K toKey)
SortedMap
<K,V>
key > X 指定したキー未満の部分要素を取得します。
該当する要素が存在しない場合は、空のMapを返します。
headMap
(K toKey,
boolean inclusive)
NavigableMap
<K,V>
key > X
key >= X
第2引数に true を指定すると、指定したキー以下の部分要素を取得します。
該当する要素が存在しない場合は、空のMapを返します。
subMap
(K fromKey,
K toKey)
SortedMap
<K,V>
fkey <= X < toKey 指定したfromKey以上かつ toKey未満の部分要素を取得します。
該当する要素が存在しない場合は、空のMapを返します。
subMap
(K fKey,
boolean fInc,
K tKey, boolean tInc)
NavigableMap
<K,V>
fkey < X < toKey
fkey <= X < toKey
fkey < X <= toKey
fkey <= X <= toKey
指定したfromKey かつ toKey の部分要素を取得します。
第2、4引数を true にすると 以上・以下の条件にすることが出来ます。
該当する要素が存在しない場合は、空のMapを返します。
tailMap
(K fromKey)
SortedMap
<K,V>
fkey <= X 指定したキー以上の部分要素を取得します。
該当する要素が存在しない場合は、空のMapを返します。
tailMap
(K fromKey,
boolean inc)
NavigableMap
<K,V>
fkey < X
fkey <= X
第2引数に false を指定すると、指定したキーより大きい部分要素を取得します。
該当する要素が存在しない場合は、空のMapを返します。

4-1. headMap

指定したキー未満 もしくは キー以下の部分要素を取得できます。

実行例( headMap(K toKey) )

実行例( headMap(K toKey, boolean inclusive)

4-2. subMap

キーを範囲指定(from, to)して部分要素を取得することができます。

実行例( subMap(K fromKey, K toKey) )

実行例( subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) )

4-3. tailMap

指定したキーより大きい もしくは キー以上の部分要素を取得できます。

実行例( tailMap(K fromKey) )

実行例( tailMap(K fromKey, boolean inclusive) )

5. Mapに格納されている要素を逆順で取得

次のメソッドを使用します。

メソッド 戻り値 処理
descendingKeySet() NavigableSet<K> Mapに格納されている要素のキーを逆順で取得します。
descendingMap() NavigableMap<K,V> Mapに格納されている要素を逆順で取得します。

実行例( descendingKeySet() )

実行例( descendingMap() )

6. Mapに格納されている要素のkey一覧を取得

次のメソッドを使用します。

メソッド 戻り値 処理
navigableKeySet() NavigableSet<K> Mapに格納されている要素のキーを取得します。

実行例

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする