如何将 map() 结果添加到列表 [重复]

Posted

技术标签:

【中文标题】如何将 map() 结果添加到列表 [重复]【英文标题】:How to add map() results to a List [duplicate] 【发布时间】: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 建议也将不胜感激。谢谢!

【问题讨论】:

Stream::collect 你可以使用类似 List collect = list.stream().map(n -> n * 3).collect(Collectors.toList()); 这能回答你的问题吗? Retrieving a List from a java.util.stream.Stream in Java 8 【参考方案1】:

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

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

更多关于collect:https://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 + " "));
    

【讨论】:

以上是关于如何将 map() 结果添加到列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

怎么解决 ? (将列表添加到列数据框pyspark)

如何将打印功能的结果添加到列表中[重复]

在oracle中将行值添加到列

如何使用R [list]将列表的名称插入到列中

将多个值添加到列中 - Pandas

将数据集参数添加到列中,以便稍后通过 DataPrep 在 BigQuery 中使用它们