如何将 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 -> n * 3);
但这不是正确的做法。
对我的代码的任何其他部分的 PS 建议也将不胜感激。谢谢!
【问题讨论】:
Stream::collect
你可以使用类似 List您可以在此处使用 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() 结果添加到列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章