最小値、最大値を抽出する方法について

整数の配列

int[] array = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10 };

から最小値と最大値を抽出したい。素直に実装するなら、

int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int value : array) {
    if (value < min) {
        min = value;
    }
    if (max < value) {
        max = value;
    }
}

とすれば良いが、Java8以降ではStreamを使用してより簡潔に書ける。

int min = Arrays.stream(array).min().getAsInt();
int max = Arrays.stream(array).max().getAsInt();

元データが配列ではなくListの場合でも同様にStreamで記述できる。
元データが整数以外のオブジェクトの配列またはListの場合は、

// TODO 元データを準備
List<MyClass> list = new ArrayList<>();
// 例
MyClass min = list.stream().min(Comparator.comparing(list -> list.myGetter())).get();
MyClass max = list.stream().max(Comparator.comparing(list -> list.myGetter())).get();

のようにComparatorを記述することによってStreamに繋げることができる。