今天用ArrayList拼接所有读取到的byte数组,谁想总是失败,读取的byte数组转换成list时,都变成了一个元素,而不是数组的个数。
代码
结果
原来,java基本类型的数组不能直接通过Arrays.asList方法转换为List,List的元素必须是包装类。在Java8之前,想要实现这种转换只能通过循环。对于int, long, double三种基本类型,Java8提供的新特性Stream则可以让我们在一行之内解决这个问题。
1 list = Arrays.stream(arrays).boxed().collect(Collectors.toList());
但只支持int、long、和double,所以byte[]转换成list还是得用循环。