JavaでMapから指定したキー値より小さく、最大のキー値を持つ要素を取得する方法について記載します。
目次
指定したキー値より小さい最大値を取得する方法
NavigableMap の lowerEntry・lowerKey メソッドを使用します。
メソッド | 戻り値 | 処理 |
---|---|---|
lowerEntry(K key) | Map.Entry<K,V> | 指定したキーより小さく、最大のキー値を持つ、キーと値のペアを返します。 該当するキーが存在しない場合は、nullを返します。 |
lowerKey(K key) | K | 指定したキーより小さく、最大のキー値を返します。 該当するキーが存在しない場合は、nullを返します。 |
1. lowerEntry(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"); // lowerEntry // 3未満の最大値を取得 Map.Entry<Integer,String> rsltMap1 = map.lowerEntry(3); System.out.println(rsltMap1); // 2=two // 1未満の最大値を取得(該当するキーがないため、null が返ります) Map.Entry<Integer,String> rsltMap2 = map.lowerEntry(1); System.out.println(rsltMap2); // null |
2. lowerKey(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"); // lowerKey // 3未満の最大値を取得 Integer rsltKey1 = map.lowerKey(3); System.out.println(rsltKey1); // 2 // 1未満の最大値を取得(該当するキーがないため、null が返ります) Integer rsltKey2 = map.lowerKey(1); System.out.println(rsltKey2); // null |