在List / array(Java)中输入元素的最简单/最快的方法?

时间:2017-03-06 06:02:11

标签: java performance lambda

以下使用Java8的代码效果很好

List<String> strings = IntStream
.range(0,scanner.nextInt())
.mapToObj(i -> scanner.next())
.collect(Collectors.toList());

这是做什么的:

for(i=0; i<scanner.nextInt(); i++){
    list.add(sc.next());
}

构建输入整数列表的合适(类似)方法是什么?也欢迎替代方式!

1 个答案:

答案 0 :(得分:0)

好的,我想出了这个。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/**
 * Created by sbsatter on 3/6/17.
 */
public class Main {
    public static void main(String ... args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<>();

        list = IntStream.range(0,sc.nextInt()).map(i -> sc.nextInt()).boxed().collect(Collectors.toList());
        System.out.println(list);
    }
}

有更好的选择吗?