JavaでMapから指定したキー値より大きく、最小のキー値を持つ要素を取得する方法について記載します。
目次
指定したキー値より大きい最小値を取得する方法
NavigableMap の higherEntry・higherKey メソッドを使用します。
メソッド | 戻り値 | 処理 |
---|---|---|
higherEntry(K key) | Map.Entry<K,V> | 指定したキーより大きく、最小のキー値を持つ、キーと値のペアを返します。 該当するキーが存在しない場合は、nullを返します。 |
higherKey(K key) | K | 指定したキーより大きく、最小のキー値を返します。 該当するキーが存在しない場合は、nullを返します。 |
1. higherEntry(K key)
条件に一致したキーと値を取得する場合は、このメソッドを使用します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
NavigableMap<Integer,String> map = new TreeMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); map.put(4, "four"); map.put(5, "five"); // higherEntry // 2より大きい最小値を取得 Map.Entry<Integer,String> rsltMap1 = map.higherEntry(2); System.out.println(rsltMap1); // 3=three // 5より大きい最小値を取得(該当するキーがないため、null が返ります) Map.Entry<Integer,String> rsltMap2 = map.higherEntry(6); System.out.println(rsltMap2); // null |
2. higherKey(K key)
条件に一致したキーを取得する場合は、このメソッドを使用します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
NavigableMap<Integer,String> map = new TreeMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); map.put(4, "four"); map.put(5, "five"); // higherKey // 2より大きい最小値を取得 Integer rsltKey1 = map.higherKey(2); System.out.println(rsltKey1); // 3 // 5より大きい最小値を取得 Integer rsltKey3 = map.higherKey(6); System.out.println(rsltKey3); // null |