【问题标题】:Add objects in a list using java 8使用 java 8 在列表中添加对象
【发布时间】:2017-07-10 17:49:49
【问题描述】:

我是 Java 8 的新手,所以我有一个 CollegeGroup 列表,我有一个 Student 有很多组。每个小组都有一个与学生相关联的CollegeGroupMember。有没有办法在我的列表中返回这些组(studentCollegeGroups)?

final List<CollegeGroup> studentCollegeGroups = new ArrayList<>();
student.getCollegeGroupMembers().forEach(collegeGroupMember -> 
             studentCollegeGroups.add(collegeGroupMember.getCollegeGroup()));

【问题讨论】:

  • 你的代码有什么问题?
  • 使用map(CollegeGroupMember::getCollegeGroup).forEach(studentCollegeGroups::add)map(...).collect(Collectors.toList()) 收集返回给您的列表中的组。奖励:映射到 CollegeGroup 后,您可以使用 distinct() 或 sorted() 中间操作,可以对组而不是成员进行操作。
  • 谢谢!我也需要 distinct(),非常感谢。

标签: java list lambda java-8


【解决方案1】:

Java 8 的最佳实践不是向外部列表添加内容,而是将整个列表创建为一个流表达式的结果。在这里,应该是

return student.getCollegeGroupMembers().stream()
    .map(CollegeGroupMember::getCollegeGroup)
    .collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多