Java 8 中的数组流 Array Stream

Arrays.stream()方法

这个方法很实用, 它会直接帮你转换为单个对象。直接上代码:

String[] str = {"a", "b", "c"};
Arrays.stream(str).forEach(System.out::println);// 逐行打出 "a" "b" "c"

int[] number = {1, 2, 3};
Arrays.stream(number).forEach(System.out::println);// 逐行打出 1 2 3

Stream.of() 方法

这个方法就要区分数组内容是对象还是基本数据结构了,他们得到的结果是不同的:

String[] str = {"a", "b", "c"};
Stream.of(str).forEach(System.out::println);// 逐行打出 "a" "b" "c"

int[] number = {1, 2, 3};
// 这里打出的是数组指针,其实内容是只含有一个整体的[1,2,3]数组流
Stream.of(number).forEach(System.out::println);

// 当然我们可以把它继续展开成我们想要的数组流, 这样就会逐行打出 1 2 3 啦
Stream.of(number).flatMapToInt(Arrays::stream).forEach(System.out::println);

对于java 8 内部源码的实现,有兴趣的童鞋可以自己研究。这里就要注意的是实用Stream.of()的时候要特别小心就是了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Scroll to Top