当前位置:   article > 正文

实体类集合中的两个字段使用Stream合并为List<String>_一个stream流怎么收集两个字段组合成一个list

一个stream流怎么收集两个字段组合成一个list

        在这篇技术文档中,我们将讨论如何使用 Java 8 的 Stream API 来获取一个 member_sn 集合。通过以下步骤,可以从给定的数据集合中提取 unique member_sn 值并存储在一个 List 中。

步骤

        首先,确保已经导入了所需的类和包,例如 List、Stream 和 Collectors。

  1. 创建一个名为 rows 的数据集合,该集合包含元素,每个元素都有 action_member_sn 和 member_sn 属性。

  2. 使用 Stream API 对 rows 进行流操作,以便在每个元素上执行后续操作。

  3. 在流操作中使用 map() 方法,将每个元素转换为包含 action_member_sn 和 member_sn 值的列表。

    1. List<String> member_sn_list = rows.stream()
    2. .map(vo -> Stream.of(vo.getAction_member_sn(), vo.getMember_sn())
    3. .collect(Collectors.toList()))

  4. 使用 flatMap() 方法将列表中的多个列表扁平化为一个单一的 Stream。
    .flatMap(Collection::stream)
    

  5. 使用 distinct() 方法过滤重复的元素。
    .distinct()

  6. 最后,使用 collect() 方法将结果收集到一个新的 List 中。
    .collect(Collectors.toList());
    

    示例代码

    1. import java.util.Collection;
    2. import java.util.List;
    3. import java.util.stream.Collectors;
    4. import java.util.stream.Stream;
    5. public class Main {
    6. public static void main(String[] args) {
    7. // 创建一个示例数据集合
    8. List<DataVO> rows = new ArrayList<>();
    9. rows.add(new DataVO("member1", "action_member1"));
    10. rows.add(new DataVO("member2", "action_member2"));
    11. rows.add(new DataVO("member3", "action_member1"));
    12. rows.add(new DataVO("member4", "action_member3"));
    13. rows.add(new DataVO("member3", "action_member2"));
    14. // 获取 member_sn 集合
    15. List<String> member_sn_list = rows.stream()
    16. .map(vo -> Stream.of(vo.getAction_member_sn(), vo.getMember_sn())
    17. .collect(Collectors.toList()))
    18. .flatMap(Collection::stream)
    19. .distinct()
    20. .collect(Collectors.toList());
    21. // 打印结果
    22. System.out.println(member_sn_list);
    23. }
    24. static class DataVO {
    25. private String member_sn;
    26. private String action_member_sn;
    27. public DataVO(String member_sn, String action_member_sn) {
    28. this.member_sn = member_sn;
    29. this.action_member_sn = action_member_sn;
    30. }
    31. public String getMember_sn() {
    32. return member_sn;
    33. }
    34. public String getAction_member_sn() {
    35. return action_member_sn;
    36. }
    37. }
    38. }

    这是一个简单的示例代码,可以根据自己的需求进行修改和扩展。根据输入的数据集合,上述代码将返回一个包含 unique member_sn 值的列表。

    希望这篇技术文档对你有所帮助!如果你还有任何问题,请随时提问。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/323291
推荐阅读
相关标签
  

闽ICP备14008679号