Java 1.6から導入されたNavigableSetのdescendingSet()を使うとNavigableSetを逆順にしたNavigableSetを得ることができる。Java 1.6のTreeSetはNavigableSetを実装しているためdescendingSet()でTreeSetの逆順のNavigableSetを取得できる。MapにもNavigableMapがあるためTreeMapの逆順も取得可能
descendingSetを使ったプログラム
import java.util.TreeSet; import java.util.NavigableSet; public class DescendingTest { public static void main(String[] args){ int[] data = {100, 53, 1, 41, 33, 66, 128, 15, 9, 97}; TreeSet<Integer> integerSet = new TreeSet<Integer>(); for(int integer : data) integerSet.add(integer); System.out.println("TreeSetの順番"); for(int integer : integerSet) System.out.println(integer); NavigableSet<Integer> descendingSet = integerSet.descendingSet(); System.out.println(); System.out.println("TreeSetの逆順"); for(int integer : descendingSet) System.out.println(integer); } }
実行結果
TreeSetの順番
1
9
15
33
41
53
66
97
100
128TreeSetの逆順
128
100
97
66
53
41
33
15
9
1