为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过使用 Java8 Stream 从对象中获取多个字段值来从 List<Object>

如何通过使用 Java8 Stream 从对象中获取多个字段值来从 List<Object>

慕码人8056858 2021-12-01 15:34:48
数据历史记录类:public class DataHistoryRecord {Long dataCreatedBy;Long dataModifiedBy;getters & setters}我有List<DataHistoryRecord>并且我想用HashSet它来创建唯一dataCreatedBy和dataModifiedByID。例如:如果列表有以下两条记录:DataHistoryRecord1 与 dataCreatedBy: 1 和 dataModifiedBy: 2DataHistoryRecord2 与 dataCreatedBy: 1 和 dataModifiedBy: 3输出HashSet应该有三个值;1,2,3注意:请建议没有 foreach 的方法
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

你可以这样做,

Set<Long> uniqueValues = historyRecords.stream()
        .flatMap(hr -> Stream.of(hr.getCreatedBy(), hr.getModifiedBy()))
        .collect(Collectors.toSet());


查看完整回答
反对 回复 2021-12-01
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

使用以下代码:

      Set<Long> collect = list
         .stream()
         .flatMap(record -> Stream.of(record.getCreatedBy(), record.getModifiedBy())
         .collect(Collectors.toSet());


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 3093 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信