Java 数组转换成List

1 对于Object[]数组用 Arrays.asList(array)

        String [] arr3 = {"hello", "cat", "baby"};
        List<String> list3 = Arrays.asList(arr3);
        list3.forEach( a3 -> {
            System.out.println(a3);
        });

2 对于基本类型:比如int[]就会失效

int arr[] = {0,1,1,2,3,5,8,13,21};

List<Integer> intList = Arrays.asList(arr);

编译不能通过。

3 可以用Java 8 Stream API

int[] spam = new int[] { 1, 2, 3 };
 List<Integer> list = Arrays.stream(spam)
                        .boxed()
                        .collect(Collectors.toList());

4 其中的要点是boxed就是装箱,把原始类型装到对象中。

因此,下面的代码才是要点。

int[] arr = {3, 4, 5};
 Integer[] arr2 = Arrays.stream(arr).boxed().toArray(Integer[]::new);

Arrays.stream(arr)把arr流化,boxed装箱,toArray转换成数组,但不知道如何分配内存。所以Integer[]::new就是终结。

这就是函数式编程的风格。

你可能感兴趣的:(Java 数组转换成List)