Java 如何将map()结果添加到列表中
我正在做一些简单的事情,但我不知道怎么做。 我有一个ArrayList,我在上面使用了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
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());这回答了你的问题吗?