【问题标题】:Creating objects with parameters in Java 8 Stream在 Java 8 Stream 中创建带参数的对象
【发布时间】:2017-05-14 13:14:22
【问题描述】:

是否可以在使用 Stream 类时创建带参数的对象?我想用 Java 8 Stream 重现以下内容。

for(Integer id:someCollectionContainingTheIntegers){
     someClass.getList().add(new Whatever(param1, id));
}

【问题讨论】:

    标签: java collections parameters java-8 java-stream


    【解决方案1】:

    当然。但如果你有一个集合,你可以使用forEach 和一个 lambda:

    someCollectionContainingTheIntegers.forEach(id -> someClass.getList().add(new Whatever(param1, id));
    

    另一个可能的变化是收集到目标列表中:

    someCollectionContainingTheIntegers.stream()
        .map(id -> new Whatever(param1, id))
        .collect(Collectors.toCollection(() -> someClass.getList()));
    

    【讨论】:

    • 非常感谢,Janos :)
    【解决方案2】:

    还有一个解决方案...

        List<Whatever> collect = someCollectionContainingTheIntegers.stream()
                .map(id -> new Whatever(param1, id))
                .collect(toList());
        someClass.getList().addAll(collect);
    

    【讨论】:

      【解决方案3】:

      在列表中做一个 foreach

      List<Integer> ml = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
      List<Integer> ml2 = Arrays.asList(21, 22, 23, 24);
      ml2.forEach(x -> ml.add(x));
      System.out.println(ml);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多