java sortメソッドを降順にするにはどうすればよいですか
Javaのsort関数は昇順でソート、降順でソートする場合は独自のComparatorをsort関数に渡す。
ソートを使用した降順ソートを行う方法を示すサンプルコードを以下に示します。
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
Integer[] numbers = {5, 2, 8, 1, 9};
// 使用自定义的比较器,以降序排序
Arrays.sort(numbers, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// 降序排序,将o2放在前面
return o2.compareTo(o1);
}
});
// 输出排序结果
for (Integer number : numbers) {
System.out.print(number + " ");
}
}
}
今回の入力の結果を逆順にすると9 8 5 2 1になります
上記のサンプルコードでは、Integer型配列を作成し、Arrays.sort関数でソートしています。sort関数の2番目の引数に、Comparatorインターフェースを実装した匿名内部クラスを渡し、compareメソッドをオーバライドしてo2とo1を比較し、降順にソートしています。最後にソート結果をループで出力しています。