java8listmax_Java在List上使⽤.max()和.stream()
我想请求⼀些代码的解释,我将其作为我在
Java课程中进⾏的练习的解决⽅案.
练习是我有⼀个List<> of Employees,具有各种属性(薪⽔,姓名,姓⽒,电⼦邮件……),我正在尝试检索收⼊最⾼的员⼯并打印他们的姓名和薪⽔.
我能够检索最⾼薪⽔⽽不是员⼯姓名,如下所⽰:
Integer maxSalary;
maxSalary = roster
校企合作方案
对爸爸说的心里话.stream()
楷书毛笔字.map(Employee :: getSalary)
.ducing(Integer :: max)
.get();突尼斯国家队
然后我给了这个⼩块代码,它完全正常但我不太确定它为什么有效:
Integer maxSalary;
Employee emp2 = roster
.stream()
文化意蕴
.max((p1, p2) -> Salary(), p2.getSalary()))
.get();
System.out.println("The employee who earns the most is :" + Name + " and earns : " + Salary + " a month.");
我知道这是⼀个使⽤.max的Lambda表达式我似乎⽆法理解为什么以及如何⼯作?
Optional max(Comparator super T> comparator)解释了这⼀切.
由于问题的⽬的是找到薪⽔最⾼的员⼯,因此将流直接传递给.max,这会消耗员⼯⽐较器.由于⽐较器是功能接⼝,因此可以作为lambda传递.
水浒人物绰号
难忘的小学生活.max已经实现了⾃java 8以来可⽤的更⼀般的reduce和collect操作的版本
揭疮疤另⼀⽅⾯,你的尝试是专门试图获得最⾼薪⽔.
⼲杯.快乐流媒体.