マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

TreeSetを逆順でアクセスする

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
128

TreeSetの逆順
128
100
97
66
53
41
33
15
9
1