「Java8」Stream APIのリスト要素の最小値を取得する

環境
JavaSE 1.8
Eclipse IDE 2019

書式
Optional<T> min(Comparator<? super T> comparator)
指定されたComparatorに従ってこのストリームの最小要素を返します。これはリダクションの特殊な場合です。
パラメータ:
comparator – このストリームの要素を比較する、非干渉でステートレスなComparator
戻り値:
このストリームの最小要素を記述するOptionalまたは空のOptional (ストリームが空の場合)

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
public class StreamTestDemo {
// Integer型配列
private static Integer cft[] = { 12, 34, 56, 89 };
// String型配列
private static String cftB[] = { "stu", "skill", "xboo" };
public static void main(String[] args) {
// 数値
List<Integer> lstA = Arrays.asList(cft);
Optional<Integer> resOp = lstA.stream().min(Comparator.naturalOrder());
System.out.println("lstAの最小値: " + resOp.get());
// 文字列
List<String> lstB = Arrays.asList(cftB);
Optional<String> resT = lstB.stream().min(Comparator.naturalOrder());
System.out.println("lstBの最小値: " + resT.get());
}
}
package com.arkgame.study; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Optional; public class StreamTestDemo { // Integer型配列 private static Integer cft[] = { 12, 34, 56, 89 }; // String型配列 private static String cftB[] = { "stu", "skill", "xboo" }; public static void main(String[] args) { // 数値 List<Integer> lstA = Arrays.asList(cft); Optional<Integer> resOp = lstA.stream().min(Comparator.naturalOrder()); System.out.println("lstAの最小値: " + resOp.get()); // 文字列 List<String> lstB = Arrays.asList(cftB); Optional<String> resT = lstB.stream().min(Comparator.naturalOrder()); System.out.println("lstBの最小値: " + resT.get()); } }
package com.arkgame.study;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;

public class StreamTestDemo {
      // Integer型配列
      private static Integer cft[] = { 12, 34, 56, 89 };
      // String型配列
      private static String cftB[] = { "stu", "skill", "xboo" };

      public static void main(String[] args) {
            // 数値
            List<Integer> lstA = Arrays.asList(cft);
            Optional<Integer> resOp = lstA.stream().min(Comparator.naturalOrder());
            System.out.println("lstAの最小値: " + resOp.get());

            // 文字列
            List<String> lstB = Arrays.asList(cftB);
            Optional<String> resT = lstB.stream().min(Comparator.naturalOrder());
            System.out.println("lstBの最小値: " + resT.get());
      }
}

実行結果
lstAの最小値: 12
lstBの最小値: skill

Java

Posted by arkgame