网站建设 唐山,全国大型网站建设,视频高清线hdmi,公司网站设计哪家公司好Arrays.asList()使用时的注意事项#xff0c;这个结论同可适用于Stream.of()
Arrays.asList的参数不能是基本数据类型的数组
Array.asList()的作用是把数组变成一个列表#xff0c;但是它不能使用 八种基本类型的数组参数#xff0c;也就是说如 int[], byte[], char[],sho…Arrays.asList()使用时的注意事项这个结论同可适用于Stream.of()
Arrays.asList的参数不能是基本数据类型的数组
Array.asList()的作用是把数组变成一个列表但是它不能使用 八种基本类型的数组参数也就是说如 int[], byte[], char[],short[], boolean[],long[],float[],double[] 这几种类型的数组是不可以作为参数的虽然不会报错但得到的不是我们想要的数据 如果一定要用这几种类型的数组 那就声明数组是要使用其相对应的包装类 Integer[] Byte[] 等
Arrays.asList返回的集合不能操作 只能读取也就是说返回的集合是不可以使用 add() 和 remove() 等改变集合的方法的
因为 Arrays.asList() 把回的数把类型是一个list , 但是这个list 不是 java.util.arraylist的类 而是Arrays类的一个内部类 这个内部类中没有这些方法 所以不可以使用
其它只要参数类型使用了泛型的 都不可以使用基本类型
Arrays.stream和Stream.of
在 java8 中您可以使用 Arrays.Stream 或 Stream.of 将 Array 转换为 Stream。 对象数组 对于对象数组Arrays.stream 和 Stream.of 都返回相同的输出。 private static void ObjectArrays() {String[] array {“a”, “b”, “c”, “d”, “e”};**//Arrays.stream**Stream stream Arrays.stream(array);stream.forEach(x- System.out.println(x));**//Stream.of**Stream stream1 Stream.of(array);stream1.forEach(x- System.out.println(x));
}基本数组 对于基本数组Arrays.stream 和 Stream.of 将返回不同的输出。 private static void PrimitiveArrays() {int[] intArray {1, 2, 3, 4, 5};// **1. Arrays.stream** - IntStreamIntStream stream Arrays.stream(intArray);stream.forEach(x-System.out.println(x));System.out.println();// **2. Stream.of** - Streamint[]Streamint[] temp Stream.of(intArray);// 不能直接输出需要先转换为 IntStreamIntStream intStream temp.flatMapToInt(x - Arrays.stream(x));intStream.forEach(x- System.out.println(x));
}对于对象数组两者都调用相同的 Arrays.stream 方法 对于基本数组我更喜欢 Arrays.stream因为它返回固定的大小 IntStream更容易操作。 所以推荐使用 Arrays.stream不需要考虑是对象数组还是基本数组直接返回对应的流对象操作方便。