ホームページ > Java > &#&チュートリアル > Java8でストリームから最大値を取得する方法

Java8でストリームから最大値を取得する方法

WBOY
リリース: 2023-05-14 15:43:12
転載
2571 人が閲覧しました

java8 のストリームは max

 public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
        Integer max = list.stream().max((a, b) -> {
            if (a > b) {
                return 1;
            } else return -1;
        }).get();

        System.out.println(max);
    }
ログイン後にコピー

を必要とします。注: ここでは、サイズは正と負の数値および 0 の値によって判断されます。

if (a > b) {
return a;
} else return b;
ログイン後にコピー

と直接記述する代わりに、

int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();
ログイン後にコピー

java8 ストリーム詳細説明~集計 (最大/最小/数)

max# と書くと簡略化できます。 ##, mincount という言葉はよくご存じでしょう。はい、mysql のデータ統計によく使用されます。

これらの概念と使用法は Java ストリームにも導入されており、コレクションや配列に対するデータ統計の作業が大幅に容易になります。

Java8でストリームから最大値を取得する方法

「ケース 1: String コレクション内の最長の要素を取得します。」

public class StreamTest {
 public static void main(String[] args) {
  List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
 
  Optional<String> max = list.stream().max(Comparator.comparing(String::length));
  System.out.println("最长的字符串:" + max.get());
 }
}
ログイン後にコピー

「ケース 2: Integer コレクション内の最大値を取得します。」

public class StreamTest {
 public static void main(String[] args) {
  List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);
 
  // 自然排序
  Optional<Integer> max = list.stream().max(Integer::compareTo);
  // 自定义排序
  Optional<Integer> max2 = list.stream().max(new Comparator<Integer>() {
   @Override
   public int compare(Integer o1, Integer o2) {
    return o1.compareTo(o2);
   }
  });
  System.out.println("自然排序的最大值:" + max.get());
  System.out.println("自定义排序的最大值:" + max2.get());
 }
}
ログイン後にコピー

「ケース 3: 最も給与の高い従業員を取得します。」

public class StreamTest {
 public static void main(String[] args) {
  List<Person> personList = new ArrayList<Person>();
  personList.add(new Person("Tom", 8900, 23, "male", "New York"));
  personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
  personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
  personList.add(new Person("Anni", 8200, 24, "female", "New York"));
  personList.add(new Person("Owen", 9500, 25, "male", "New York"));
  personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
 
  Optional<Person> max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
  System.out.println("员工工资最大值:" + max.get().getSalary());
 }
}
ログイン後にコピー

「ケース 4: 整数セット内の 6 より大きい要素の数を計算します。」

import java.util.Arrays;
import java.util.List;
 
public class StreamTest {
 public static void main(String[] args) {
  List<Integer> list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
 
  long count = list.stream().filter(x -> x > 6).count();
  System.out.println("list中大于6的元素个数:" + count);
 }
}
ログイン後にコピー

以上がJava8でストリームから最大値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート