首頁 >Java >java教程 >如何使用'max”函數從 Java 流返回所有最大值?

如何使用'max”函數從 Java 流返回所有最大值?

Linda Hamilton
Linda Hamilton原創
2024-12-13 12:24:11889瀏覽

How to Return All Maximum Values from a Java Stream Using the `max` Function?

在Java 流中使用Max 函數傳回所有最大值

在Java 8 的lambda 流中使用max 函數時,在場景中可能會出現差異其中多個物件產生相同的最大值。此函數輸出任意代表,而不評估或考慮所有可行的候選者。

為了解決此限制,需要一種替代方法來準確檢索所有最大值。不幸的是,沒有一種簡單的方法,需要利用集合來保存部分結果。

兩遍解決方案

對於儲存在集合中的輸入(List list),可以採用兩階段過程:

  1. 決定最長字串的長度(例如,int Longest = list.stream().mapToInt(String::length).max().orElse(-1);)。
  2. 過濾清單以提取具有最大長度的所有字串(例如,List result = list.stream().filter(s -> s.length() ==最長).collect(toList());).

單通道解(流)

要使用流解決單通道場景,可以根據提供的比較器建立自訂收集器:

要在流中使用此收集器,只需呼叫收集:

以上是如何使用'max”函數從 Java 流返回所有最大值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn