「Java8」関数型インターフェースComparatorで配列の昇順、降順を指定する
環境
JavaSE 1.8
Eclipse IDE 2019-12
書式
static <T extends Comparable<? super T>> Comparator<T> naturalOrder()
型パラメータ:
T – 比較対象の要素のComparable型
戻り値:
Comparableオブジェクトに自然順序付けを義務付けるコンパレータ。
使用例
package com.arkgame.study;
import java.util.Arrays;
import java.util.Comparator;
public class IteratorDemo {
public static void main(String[] args) {
Double empArr[] = { 1.3, 4.2, 5.1, 6.5, 7.4 };
// 昇順
Arrays.sort(empArr, Comparator.naturalOrder());
System.out.println("Double配列要素の昇順になる結果1:\n" + Arrays.toString(empArr));
// 降順
Arrays.sort(empArr, Comparator.reverseOrder());
System.out.println("Double配列要素の降順になる結果2:\n" + Arrays.toString(empArr));
System.out.println("***********************");
Integer gArr[] = { 15, 42, 67, 86, 38 };
// 昇順
Arrays.sort(gArr, Comparator.naturalOrder());
System.out.println("Integer配列要素の昇順になる結果1:\n" + Arrays.toString(gArr));
// 降順
Arrays.sort(gArr, Comparator.reverseOrder());
System.out.println("Integer配列要素の降順になる結果2:\n" + Arrays.toString(gArr));
}
}
package com.arkgame.study;
import java.util.Arrays;
import java.util.Comparator;
public class IteratorDemo {
public static void main(String[] args) {
Double empArr[] = { 1.3, 4.2, 5.1, 6.5, 7.4 };
// 昇順
Arrays.sort(empArr, Comparator.naturalOrder());
System.out.println("Double配列要素の昇順になる結果1:\n" + Arrays.toString(empArr));
// 降順
Arrays.sort(empArr, Comparator.reverseOrder());
System.out.println("Double配列要素の降順になる結果2:\n" + Arrays.toString(empArr));
System.out.println("***********************");
Integer gArr[] = { 15, 42, 67, 86, 38 };
// 昇順
Arrays.sort(gArr, Comparator.naturalOrder());
System.out.println("Integer配列要素の昇順になる結果1:\n" + Arrays.toString(gArr));
// 降順
Arrays.sort(gArr, Comparator.reverseOrder());
System.out.println("Integer配列要素の降順になる結果2:\n" + Arrays.toString(gArr));
}
}
package com.arkgame.study; import java.util.Arrays; import java.util.Comparator; public class IteratorDemo { public static void main(String[] args) { Double empArr[] = { 1.3, 4.2, 5.1, 6.5, 7.4 }; // 昇順 Arrays.sort(empArr, Comparator.naturalOrder()); System.out.println("Double配列要素の昇順になる結果1:\n" + Arrays.toString(empArr)); // 降順 Arrays.sort(empArr, Comparator.reverseOrder()); System.out.println("Double配列要素の降順になる結果2:\n" + Arrays.toString(empArr)); System.out.println("***********************"); Integer gArr[] = { 15, 42, 67, 86, 38 }; // 昇順 Arrays.sort(gArr, Comparator.naturalOrder()); System.out.println("Integer配列要素の昇順になる結果1:\n" + Arrays.toString(gArr)); // 降順 Arrays.sort(gArr, Comparator.reverseOrder()); System.out.println("Integer配列要素の降順になる結果2:\n" + Arrays.toString(gArr)); } }
実行結果
Double配列要素の昇順になる結果1:
[1.3, 4.2, 5.1, 6.5, 7.4]
Double配列要素の降順になる結果2:
[7.4, 6.5, 5.1, 4.2, 1.3]
***********************
Integer配列要素の昇順になる結果1:
[15, 38, 42, 67, 86]
Integer配列要素の降順になる結果2:
[86, 67, 42, 38, 15]
Double配列要素の昇順になる結果1:
[1.3, 4.2, 5.1, 6.5, 7.4]
Double配列要素の降順になる結果2:
[7.4, 6.5, 5.1, 4.2, 1.3]
***********************
Integer配列要素の昇順になる結果1:
[15, 38, 42, 67, 86]
Integer配列要素の降順になる結果2:
[86, 67, 42, 38, 15]
Double配列要素の昇順になる結果1: [1.3, 4.2, 5.1, 6.5, 7.4] Double配列要素の降順になる結果2: [7.4, 6.5, 5.1, 4.2, 1.3] *********************** Integer配列要素の昇順になる結果1: [15, 38, 42, 67, 86] Integer配列要素の降順になる結果2: [86, 67, 42, 38, 15]