【问题标题】:How to add map() results to a List [duplicate]如何将 map() 结果添加到列表 [重复]
【发布时间】:2020-04-27 01:56:33
【问题描述】:

我正在做一些简单的事情,但不知道该怎么做。 我有一个 ArrayList,我使用了 stream().map() 方法,我想立即将结果添加到新的 ArrayList。

    List<Integer> list = new ArrayList<>();
    Scanner sc = new Scanner(System.in);

    while (list.size() < 5) {
        System.out.println("Enter numbers of the array : ");
        int num = sc.nextInt();
        list.add(num);
    }
    System.out.print("Before mapping : ");
    list.forEach(a -> System.out.print(a + " "));
    System.out.println("");

    System.out.print("After mapping : ");
    List<Integer> mappedList = new ArrayList<>();
    list.stream().map(n -> n * 3);
    mappedList.forEach(a -> System.out.print(a + " "));

所以我想做类似mappedList = list.stream().map(n -&gt; n * 3); 但这不是正确的做法。

对我的代码的任何其他部分的 PS 建议也将不胜感激。谢谢!

【问题讨论】:

标签: java arraylist lambda java-8 java-stream


【解决方案1】:

您可以在此处使用 java Stream 库中的collect 方法。

List<Integer> mappedList = list.stream()
                                .map(n -> n * 3)
                                .collect(Collectors.toList());

更多关于collecthttps://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#collect-java.util.stream.Collector-

【讨论】:

    【解决方案2】:

    它看起来像:

    public static void main(String[] args) throws Exception {
            List<Integer> list = new ArrayList<>();
            Scanner sc = new Scanner(System.in);
    
            while (list.size() < 5) {
                System.out.println("Enter numbers of the array : ");
                int num = sc.nextInt();
                list.add(num);
            }
            System.out.print("Before mapping : ");
            list.forEach(a -> System.out.print(a + " "));
            System.out.println("");
    
            System.out.print("After mapping : ");
            List<Integer> mappedList = new ArrayList<>();
            mappedList = list.stream().map(n -> n * 3).collect(Collectors.toList());
    
            mappedList.forEach(a -> System.out.print(a + " "));
        }
    

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 1970-01-01
      • 2022-01-09
      • 2019-09-21
      • 2018-12-12
      • 2021-04-09
      • 2011-01-23
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多