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()的时候要特别小心就是了。