最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java8的stream如何取max

 更新時間:2023年03月23日 09:24:45   作者:qq_20009015  
這篇文章主要介紹了java8的stream如何取max問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java8的stream取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);
? ? }

注意點:這里判斷大小是通過正負數(shù)和0值。 而不是直接寫成

if (a > b) {
return a;
} else return b;

可以簡化寫法

int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();

java8 stream詳解~聚合(max/min/count)

max、mincount這些字眼你一定不陌生,沒錯,在mysql中我們常用它們進行數(shù)據(jù)統(tǒng)計。

Java stream中也引入了這些概念和用法,極大地方便了我們對集合、數(shù)組的數(shù)據(jù)統(tǒng)計工作。

「案例一:獲取String集合中最長的元素?!?/h3>
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());
 }
}

「案例二:獲取Integer集合中的最大值?!?/h3>
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());
 }
}

「案例三:獲取員工工資最高的人?!?/h3>
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());
 }
}

「案例四:計算Integer集合中大于6的元素的個數(shù)?!?/h3>
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的元素個數(shù):" + count);
 }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring MVC搭建及配置詳解

    spring MVC搭建及配置詳解

    本篇文章主要介紹了spring MVC配置方法,要想靈活運用Spring MVC來應(yīng)對大多數(shù)的Web開發(fā),就必須要掌握它的配置及原理,有興趣的可以了解一下。
    2017-01-01
  • Java Swing JCheckBox復(fù)選框的實現(xiàn)方法

    Java Swing JCheckBox復(fù)選框的實現(xiàn)方法

    這篇文章主要介紹了Java Swing JCheckBox復(fù)選框的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • DoytoQuery中關(guān)于N+1查詢問題解決方案詳解

    DoytoQuery中關(guān)于N+1查詢問題解決方案詳解

    這篇文章主要為大家介紹了DoytoQuery中關(guān)于N+1查詢問題解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • springMVC的RequestMapping請求不到路徑的解決

    springMVC的RequestMapping請求不到路徑的解決

    這篇文章主要介紹了springMVC的RequestMapping請求不到路徑的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 用Java實現(xiàn)一個靜態(tài)鏈表的方法步驟

    用Java實現(xiàn)一個靜態(tài)鏈表的方法步驟

    這篇文章主要介紹了用Java實現(xiàn)一個靜態(tài)鏈表的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java線程通訊的實現(xiàn)方法總結(jié)

    Java線程通訊的實現(xiàn)方法總結(jié)

    線程通訊指的是多個線程之間通過共享內(nèi)存或消息傳遞等方式來協(xié)調(diào)和同步它們的執(zhí)行,線程通訊的實現(xiàn)方式主要有以下兩種:共享內(nèi)存和消息傳遞,本文詳細介紹了Java線程是如何通訊的,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • 解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    這篇文章主要介紹了java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • 5分鐘快速上手Spring Boot

    5分鐘快速上手Spring Boot

    這篇文章主要介紹了5分鐘快速上手Spring Boot,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    最近正在閱讀Java ReentrantLock源碼,始終對可重入和不可重入概念理解不透徹,今天特地整理了本篇文章,讓你徹底了解Java可重入鎖和不可重入鎖,需要的朋友可以參考下
    2021-06-06
  • 一篇文章讓你學(xué)會Java的輸入與輸出

    一篇文章讓你學(xué)會Java的輸入與輸出

    這篇文章主要介紹了Java輸入與輸出的相關(guān)資料,包括使用System.out.println()、System.out.printf()和System.out.print()進行輸出,以及使用Scanner類和System.in.read()方法進行輸入,需要的朋友可以參考下
    2025-03-03

最新評論

青河县| 昭觉县| 玉树县| 平阳县| 苗栗市| 江源县| 曲周县| 临高县| 安陆市| 永丰县| 木里| 望江县| 长葛市| 桂平市| 巨野县| 通榆县| 伊宁市| 全椒县| 喜德县| 永和县| 成武县| 丰宁| 江口县| 榆社县| 南京市| 大田县| 扶绥县| 宜良县| 长宁区| 镇远县| 页游| 石狮市| 阳信县| 绥滨县| 仪征市| 甘洛县| 确山县| 哈尔滨市| 汶上县| 上杭县| 汝州市|