文章目录
构造实例
// 数组
Stream stream = Stream.of("a", "b", "c"); //直接由数组生成
String [] strArray = new String[] {"a", "b", "c"};
stream = Stream.of(strArray);
stream = Arrays.stream(strArray); //相当于aslist,可以看做少了个as
list获取stream流
List<String> list = Arrays.asList(strArray);
stream = list.stream();
list、set、map获取流
比较简单,直接带有stream()方法。
List<String> list = new ArrayList<>();
list.stream();
HashSet<Object> set = new HashSet<>();
set.stream();
HashMap<Object, Object> map = new HashMap<>();
map.keySet().stream(); // keySet获取流
map.entrySet().stream(); // entrySet获取流
1
IntSream构造:
IntStream.of(new int[]{1, 2, 3}).forEach(System.out::println);
IntStream.range(1, 3).forEach(System.out::println); // 开区间
IntStream.rangeClosed(1, 3).forEach(System.out::println); // 闭区间
一些常用方法:
//forEach表示遍历
IntStream.of(1,2,3).map(n-> n*n).forEach(System.out::println); // map
IntStream.of(1,4,6,9).filter(n-> n>5).forEach(System.out::println); // filter
peek方法还不太懂,慢慢来.
有一点需要注意:
Stream.of()和list.stream() 是有区别的。
如果是集合,直接用.stream()
如果是数组,才用Stream.of()
ArrayList<Object> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("pair");
Stream.of(fruits).forEach(n-> System.out.println(n)); // 认为list是stream的第一个元素
fruits.stream().forEach(n-> System.out.println(n)); // 把list的元素作为stream 结果不一样