日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

lambda Collectors類的靜態工廠方法

作者:m0_59259076 更新時間: 2023-10-11 編程語言

java.util.stream.Collectors

目錄

java.util.stream.Collectors

1. toList

2. toSet

3. toCollection

4. counting

5. summingInt

6. averagingInt

7. summarizingInt

8. joining

9. minBy

10. maxBy

11. reducing

12. collectingAndThen

13. groupingBy

14. partitioningBy


1. toList

返回類型:List<T> ;

用途:用于把流中所有項目收集到一個 List;

示例:

List<Dish> dishes = menuStream.collect(toList());

2. toSet

返回類型:Set<T> ;

用途:用于把流中所有項目收集到一個 Set,刪除重復項;

示例:

Set<Dish> dishes = menuStream.collect(toSet());

3. toCollection

返回類型:Collection<T> ;

用途:用于把流中所有項目收集到給定的供應源創建的集合;

示例:

Collection<Dish> dishes = menuStream.collect(toCollection(), ArrayList::new);

4. counting

返回類型:Long ;

用途:用于計算流中元素的個數;

示例:

long howManyDishes = menuStream.collect(counting());

5. summingInt

返回類型:Integer ;

用途:用于對流中項目的一個整數屬性求和;

示例:

int totalCalories = menuStream.collect(summingInt(Dish::getCalories));

6. averagingInt

返回類型:Double ;

用途:用于計算流中項目 Integer 屬性的平均值。

示例:

double avgCalories = menuStream.collect(averagingInt(Dish::getCalories));

7. summarizingInt

返回類型:IntSummaryStatistics ;

用途:用于收集關于流中項目 Integer 屬性的統計值,例如最大、最小、總和與平均值;

示例:

IntSummaryStatistics menuStatistics=menuStream.collect(summarizingInt(Dish::getCalories));

8. joining

返回類型:String ;

用途:用于連接對流中每個項目調用 toString 方法所生成的字符串;

示例:

String shortMenu = menuStream.map(Dish::getName).collect(joining(", "));

9. minBy

返回類型:Optional<T> ;

用途:用于一個包裹了流中按照給定比較器選出的最小元素的 Optional,或如果流為空則為 Optional.empty();

示例:

Optional<Dish> lightest = menuStream.collect(minBy(comparingInt(Dish::getCalories)));

10. maxBy

返回類型:Optional<T> ;

用途:用于一個包裹了流中按照給定比較器選出的最大元素的 Optional,或如果流為空則為 Optional.empty()。

示例:

Optional<Dish> fattest = menuStream.collect(maxBy(comparingInt(Dish::getCalories)));

11. reducing

返回類型:歸約操作產生的類型 ;

用途:用于從一個作為累加器的初始值開始,利用 BinaryOperator 與流中的元素逐個結合,從而將流歸約為單個值;

示例:

int totalCalories = menuStream.collect(reducing(0, Dish::getCalories, Integer::sum));

12. collectingAndThen

返回類型:轉換函數返回的類型 ;

用途:用于包裹另一個收集器,對其結果應用轉換函數;

示例:

int howManyDishes = menuStream.collect(collectingAndThen(toList(), List::size));

13. groupingBy

返回類型:Map<K, List<T>> ;

用途:根據項目的一個屬性的值對流中的項目作問組,并將屬性值作為結果 Map 的鍵;

示例:

Map<Dish.Type,List<Dish>> dishesByType = menuStream.collect(groupingBy(Dish::getType));

14. partitioningBy

返回類型:Map<Boolean,List<T>> ;

用途:根據對流中每個項目應用謂詞的結果來對項目進行分區;

示例:

Map<Boolean, List<Dish>> vegetarianDishes =
        menuStream.collect(partitioningBy(Dish::isVegetarian));

(注:本文章參看自《Java 8 實戰》厄馬(Raoul-Gabriel Urma) / 弗斯科(Mario Fusco) / 米克羅夫特(Alan Mycroft))

原文鏈接:https://blog.csdn.net/m0_59259076/article/details/122814590

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新