我有以下课程。

class Person {

String name;

LocalDate birthday;

Sex gender;

String emailAddress;

public int getAge() {

return birthday.until(IsoChronology.INSTANCE.dateNow()).getYears();

}

public String getName() {

return name;

}

}

我希望能够按年龄分组,然后收集人员名称列表,而不是人员对象本身。全部以一个漂亮的lamba表达式表示。

为了简化所有步骤,我链接了当前的解决方案,该解决方案按年龄存储分组的结果,然后对其进行迭代以收集名称。

ArrayList members = new ArrayList<>();

members.add(new OtherPerson("Fred", IsoChronology.INSTANCE.date(1980, 6, 20), OtherPerson.Sex.MALE, "fred@example.com"));

members.add(new OtherPerson("Jane", IsoChronology.INSTANCE.date(1990, 7, 15), OtherPerson.Sex.FEMALE, "jane@example.com"));

members.add(new OtherPerson("Mark", IsoChronology.INSTANCE.date(1990, 7, 15), OtherPerson.Sex.MALE, "mark@example.com"));

members.add(new OtherPerson("George", IsoChronology.INSTANCE.date(1991, 8, 13), OtherPerson.Sex.MALE, "george@example.com"));

members.add(new OtherPerson("Bob", IsoChronology.INSTANCE.date(2000, 9, 12), OtherPerson.Sex.MALE, "bob@example.com"));

Map> collect = members.stream().collect(groupingBy(Person::getAge));

Map> result = new HashMap<>();

collect.keySet().forEach(key -> {

result.put(key, collect.get(key).stream().map(Person::getName).collect(toList()));

});

不理想,为了学习,我想有一个更优雅,更有效的解决方案。

java8自定义收集器_使用自定义收集器进行Java 8分组?相关推荐

  1. 自定义音频播放器_创建自定义HTML5音频播放器

    自定义音频播放器 在本教程中,我将向您介绍HTML5音频,并向您展示如何创建自己的播放器. 如果您想走捷径,请查看Envato市场上可用的现成的HTML5音频播放器 . 它使您可以从各种来源创建播放列 ...

  2. office自定义安装选项_如何自定义Office 2013中功能区上的现有选项卡

    office自定义安装选项 The Ribbon in Microsoft Office 2013 provides quick access to many features and options ...

  3. java 自定义形状按钮_制作自定义背景Button按钮、自定义形状Button的全攻略

    在Android开发应用中,默认的Button是由系统渲染和管理大小的.而我们看到的成功的移动应用,都是有着酷炫的外观和使用体验的.因此,我们在开发产品的时候,需要对默认按钮进行美化.在本篇里,笔者结 ...

  4. spring 两次进入拦截器_过滤器和拦截器的 6 个区别,别再傻傻分不清了

    点击上方 肉眼品世界,选择 设为星标 深度价值体系传递 作者 :程序员内点事 来源 :toutiao.com/i6834310440495874563 毕竟这两种工具开发中用到的频率都相当高,应用起来 ...

  5. 几何着色器着色器_使用金属着色器制作第一个圆圈

    几何着色器着色器 Metal Shaders? Render Pipeline? Vertex Shaders? Fragment Shaders? If you were anything like ...

  6. 多项式朴素贝叶斯分类器_多项式朴素贝叶斯分类器的主题预测

    多项式朴素贝叶斯分类器 In Analytics Vidhya, Hackathon, there was a problem statement for text prediction of top ...

  7. 如何听节拍器_如何用节拍器卡节拍?节拍器的使用方法!

    大家好,我是雅风. 这篇文章讲节拍器如何去使用,如何用节拍器卡节拍? 节拍器一般分为两种,一种机械运转上发条,一种电子. 首先我来讲一下节拍器使用方法. 一.机械节拍器. 机械节拍器 这种节拍器不需要 ...

  8. 如何听节拍器_怎么听节拍器视频

    今天的吉他培训班,来给大家说说.时间就是一切吉他手们最喜欢那些新推出的小玩意--像变调夹.连线.踏板.电子调音器和效果器等等,但是节拍器总是受到忽视.然而,正确地(甚至是创造性地)使用节拍器的技巧,比 ...

  9. flutter自定义单元格_使用自定义大小的单元格制作复杂的UICollectionView布局(第1部分)

    flutter自定义单元格 Recently I built a screen with a pretty complex layout containing self sizing cells. I ...

最新文章

  1. LeetCode简单题之独一无二的出现次数
  2. Android Edittext digits 属性限制输入的内容
  3. 日常遇到的一些问题或知识的笔记(一)
  4. WSE 3.0 文档翻译:安装WSE3.0
  5. 第14章 SpringBoot静态资源处理
  6. excel中日期设置星期
  7. C#Winform调用wsdl接口webservice#http
  8. Memcached的安装与使用
  9. 清远机器人编程_致敬逆行者:棒棒贝贝为清远援鄂人员子女免费提供一年乐高编程课...
  10. JS中Promise函数then的奥秘探究
  11. HDU 1087 Super Jumping! Jumping! Jumping!【最大递增子段和】
  12. 【LOJ10034】图书管理(哈希表,字符串)
  13. 宋体、代码-iOS网络编程实践--NSStream实现TCP Socket iPhone客户端-by小雨
  14. 使用xshell连接串口方法
  15. 实验五 IP协议分析实验
  16. 种草功能在电商app源码中发挥的作用和价值
  17. 常见笔顺错误的字_有哪些常见笔顺错误?
  18. 计算机的应用数据处理,计算机的应用领域:数据处理(或信息处理)
  19. mysql表的拆分,外键的添加,删除,级联操作
  20. Burpsuite 上

热门文章

  1. 某个元素的距离页面的左边距_在机检测圆心距
  2. 程序员应该如何提问?
  3. 宝塔面板绑定域名导致无法访问
  4. java的六大_java程序员必备的六大工具!
  5. mysql 替代like_mysql用instr替代like查询
  6. Python 文件读写
  7. 自己整理的css3动画库,附下载链接
  8. Springboot + Mybatis + Ehcache
  9. 常见的虚拟机需要配置的服务
  10. 数据采集工具Telegraf:简介及安装