您可以使用分组收集器执行此操作:

Map topEmployees =

allEmployees.stream()

.collect(groupingBy(

e -> e.department,

collectingAndThen(maxBy(comparingInt(e -> e.salary)), Optional::get)

));

用静态导入

import static java.util.Comparator.comparingInt;

import static java.util.stream.Collectors.collectingAndThen;

import static java.util.stream.Collectors.groupingBy;

import static java.util.stream.Collectors.maxBy;

此代码创建了一个所有员工的Stream,并在Collectors.groupingBy的帮助下将他们与他们的部门分组.对于分类到相同密钥的所有值,我们只需要保留最高薪水的员工,因此我们使用Collectors.maxBy和比较器将工资与Comparator.comparingInt进行比较.由于maxBy返回一个Optional< Employee> (为了处理列表为空的情况),我们用一个刚刚返回员工的终结器调用Collectors.collectingAndThen来包装它:在这种情况下我们知道可选项不会为空.

java找出最高工资和下标_Java 8 lambda用于为每个部门选择最高薪资员工相关推荐

  1. java 找出list中相同数据_Java获取List中相同的数据

    我现在连废话都懒得说了,直接讲代码吧! int index = 0; for (int i = 0,len = list.size(); i < len; i++) { if(list.size ...

  2. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  3. 第七章第十题(找出最小元素的下标)(Find the subscript of the smallest element)

    第七章第十题(找出最小元素的下标)(Find the subscript of the smallest element) 7.10(找出最小元素的下标)编写一个方法,求出整数数组中最小元素的下标.如 ...

  4. java 4位数,java 找出4位数的所有吸血鬼数字

    java 找出4位数的所有吸血鬼数字 /** * 找出四位数所有的吸血鬼数字 * 吸血鬼数字:位数为偶数的数字可以由一对数字相乘而得,这对数字包含乘积一半的位数 * 如:1260 = 21*60 */ ...

  5. java怎么找出数组最小值,Java找出数组的最小值元素

    Java找出数组的最小值元素 1 说明 在此程序中,我们需要找出数组中存在的最小元素.这可以通过保持变量min来实现,该变量起初将保留第一个元素的值.通过将min的值与数组的元素进行比较来遍历数组.如 ...

  6. java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...

    面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...

  7. java找出两个字符串中所有共同的子串_【Java笔记】

    Leetcode 1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是, ...

  8. Java找出字符串中第一个不重复的字符

    indexOf() 方法有以下四种形式: public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1. public ...

  9. 找出最大数,连同下标一起输出

    public class Demo23{ /** 定义一个数组,数组成员10个(数组自己定义),找出数组中最大数连同下标一起输出. 数组A:"1,     7, 9,   11,     1 ...

最新文章

  1. Note:理解CGI、FastCGI、PHP-CGI和PHP-FPM
  2. Java 蓝牙无线API 简介
  3. module r8169
  4. Android -- Camera聚焦流程
  5. c语言程序-hello world-运行原理简介
  6. c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理
  7. Linux内核的l2tp实现,Linux Kernel gdth实现内核内存破坏漏洞
  8. C# does not contain a constructor that takes no parameter
  9. CF1422F Boring Queries(ST表 + 主席树)
  10. 无忧企业系统的getshell
  11. import是引进外部函数吗_vue3已正式发布,你学了吗
  12. LeetCode 35. Search Insert Position
  13. Linux 常用命令六 cp和mv
  14. redhat 6.5 mysql rpm_CentOS6.5和RedHat6.5下以rpm方式安装mysql-5.6.20
  15. Cloudflare配置网站免费CDN加速使用教程
  16. 联想ideaPad Z470安装黑苹果与Win双系统教程
  17. 联想win10安全模式进入以及退出
  18. 02组团队项目-Alpha冲刺-3/6
  19. php数据存储mysql_php mysqli 存储数据库
  20. 【DockerCE】Docker-CE 20.10.13正式版发布

热门文章

  1. 转 点击关闭时最小化到任务栏
  2. 【转】PHP对象在内存中的分配
  3. 最近几次与微软的交流
  4. HDU2002 计算球体积【入门】
  5. UVA11398 The Base-1 Number System【进制】
  6. HDU1465 不容易系列之一【递推】
  7. I00032 约瑟夫环(Joseph problem)
  8. Word 2010/2013 菜单栏添加 MathType 菜单
  9. 拉普拉斯方程与复微分
  10. 理解 static 关键字