Java 如何将map()结果添加到列表中

Java 如何将map()结果添加到列表中,java,arraylist,lambda,java-8,java-stream,Java,Arraylist,Lambda,Java 8,Java Stream,我正在做一些简单的事情,但我不知道怎么做。 我有一个ArrayList,我在上面使用了stream().map()方法,我想立即将结果添加到一个新的ArrayList List<Integer> list = new ArrayList<>(); Scanner sc = new Scanner(System.in); while (list.size() < 5) { System.out.println("Enter n

我正在做一些简单的事情,但我不知道怎么做。 我有一个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 + " "));
List List=new ArrayList();
扫描仪sc=新的扫描仪(System.in);
while(list.size()<5){
System.out.println(“输入数组的编号:”);
int num=sc.nextInt();
列表。添加(num);
}
System.out.print(“映射前:”);
list.forEach(a->System.out.print(a+);
System.out.println(“”);
System.out.print(“映射后:”);
List mappedList=新建ArrayList();
list.stream().map(n->n*3);
mappedList.forEach(a->System.out.print(a+);
所以我想做一些类似于
mappedList=list.stream().map(n->n*3)的事情
但这不是正确的方法


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

您可以在这里使用java流库中的
collect
方法

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

有关收集的详细信息:

它看起来像:

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 + " "));
    }
publicstaticvoidmain(字符串[]args)引发异常{
列表=新的ArrayList();
扫描仪sc=新的扫描仪(System.in);
while(list.size()<5){
System.out.println(“输入数组的编号:”);
int num=sc.nextInt();
列表。添加(num);
}
System.out.print(“映射前:”);
list.forEach(a->System.out.print(a+);
System.out.println(“”);
System.out.print(“映射后:”);
List mappedList=新建ArrayList();
mappedList=list.stream().map(n->n*3.collect(Collectors.toList());
mappedList.forEach(a->System.out.print(a+);
}

您可以使用类似List collect=List.stream().map(n->n*3.collect(Collectors.toList());这回答了你的问题吗?