java.util.NavigableSet。
なにこれと思ったらJava SE 6で追加されたものでした。
要素を取得するメソッド (Eは型)
* E higher(E e)
- 要素の中から e より大きい最小の値を返します。存在しない場合は null
* E ceiling(E e)
- 要素の中から e 以上の最小の値を返します。存在しない場合は null
* E floor(E e)
- 要素の中から e 以下の最大の値を返します。存在しない場合は null
* E lower(E e)
- 要素の中から e 未満の最大の値を返します。存在しない場合は null
* E pollFirst()
- 最小値を持つ要素を返すと同時に NavigableSet から削除します。NavigableSet が空の場合は null を返します
* E pollLast()
- 最大値を持つ要素を返すと同時に NavigableSet から削除します。NavigableSet が空の場合は null を返します
NavigableSet から新しい NavigableSet を作成するメソッド
* NavigableSet
- 順序付けが反対で同じ要素を持つ NavigableSet を返します
* NavigableSet
- toElement 以下(inclusive が true の場合)または toElement 未満(inclusive が false の場合)の値を含む NavigableSet を返します
* NavigableSet
- fromElement 以上(inclusive が true の場合)または fromElement 超過(inclusive が false の場合)の値を含む NavigableSet を返します
* NavigableSet
- fromElement 以上(fromInclusive が true)または fromElement 超過(fromInclusive が false)、なおかつ toElement 以下(toInclusive が true)または toElement 未満(toInclusive が false)の値を含む NavigableSet を返します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
NavigableSet<Integer> navigableSet = new TreeSet<Integer>(); for(int i=0; i<10; i++){ navigableSet.add(i); } System.out.print("elements of NavigableSet: "); System.out.println(navigableSet); // 5 超過/以上/以下/未満の要素を取得. System.out.println("higher(5) : " + navigableSet.higher(5)); System.out.println("ceiling(5) : " + navigableSet.ceiling(5)); System.out.println("floor(5) : " + navigableSet.floor(5)); System.out.println("lower(5) : " + navigableSet.lower(5)); // 最大・最小値の要素を取得後,削除 System.out.println("pollFirst() : " + navigableSet.pollFirst()); System.out.println("pollLast() : " + navigableSet.pollLast()); System.out.print("elements of NavigableSet: "); System.out.println(navigableSet); NavigableSet<Integer> descendingSet = navigableSet.descendingSet(); System.out.println(descendingSet); NavigableSet<Integer> headSet = navigableSet.headSet(3, true); System.out.println(headSet); NavigableSet<Integer> tailSet = navigableSet.tailSet(3, false); System.out.println(tailSet); NavigableSet<Integer> subSet = navigableSet.subSet(3, true, 7, false); System.out.println(subSet); /*----- 出力 -----*/ elements of NavigableSet: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] higher(5) : 6 ceiling(5) : 5 floor(5) : 5 lower(5) : 4 pollFirst() : 0 pollLast() : 9 elements of NavigableSet: [1, 2, 3, 4, 5, 6, 7, 8] [8, 7, 6, 5, 4, 3, 2, 1] [1, 2, 3] [4, 5, 6, 7, 8] [3, 4, 5, 6] |
目的の要素を探索するときに便利ですね。