成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來(lái)到九壹網(wǎng)。
搜索
您的當(dāng)前位置:首頁(yè)java8 list max_Java 在List <>上使用.max()和.stream()

java8 list max_Java 在List <>上使用.max()和.stream()

來(lái)源:九壹網(wǎng)

我想請(qǐng)求一些代碼的解釋,我將其作為我在

Java課程中進(jìn)行的練習(xí)的解決方案.

練習(xí)是我有一個(gè)List<> of Employees,具有各種屬性(薪水,姓名,姓氏,電子郵件……),我正在嘗試檢索收入最高的員工并打印他們的姓名和薪水.

我能夠檢索最高薪水而不是員工姓名,如下所示:

Integer maxSalary;

maxSalary = roster

.stream()

.map(Employee :: getSalary)

.collect(Collectors.reducing(Integer :: max)

.get();

然后我給了這個(gè)小塊代碼,它完全正常但我不太確定它為什么有效:

Integer maxSalary;

Employee emp2 = roster

.stream()

.max((p1, p2) -> Integer.compare(p1.getSalary(), p2.getSalary()))

.get();

System.out.println("The employee who earns the most is :" + emp2.getName + " and earns : " + emp2.getSalary + " a month.");

我知道這是一個(gè)使用.max的Lambda表達(dá)式我似乎無(wú)法理解為什么以及如何工作?

Optional max(Comparator super T> comparator)解釋了這一切.

由于問題的目的是找到薪水最高的員工,因此將流直接傳遞給.max,這會(huì)消耗員工比較器.由于比較器是功能接口,因此可以作為lambda傳遞.

.max已經(jīng)實(shí)現(xiàn)了自java 8以來(lái)可用的更一般的reduce和collect操作的版本

Integer.compare比較兩個(gè)int數(shù)字.因此.max()返回薪水最高的員工.

另一方面,你的嘗試是專門試圖獲得最高薪水.

干杯.快樂流媒體.

因篇幅問題不能全部顯示,請(qǐng)點(diǎn)此查看更多更全內(nèi)容

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2

違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬(wàn)商天勤律師事務(wù)所王興未律師提供法律服務(wù)