java8新特性--Stream流式编程
java8新特性–Stream流式编程
对于流式编程, 学过scala和python的同学应该有所了解, 举个例子
1 | List<String> list = new ArrayList<>(); |
是不是十分简洁优雅, 我当时学习scala的时候, 就被这种流式编程所惊艳到, 进而了解到java8也有这种特性, 以后输出数组什么的再也不用for循环了
获取流
- List Set直接.stream()
- map.keySet().stream() //先转化为Set再.stream()
- Collection
map2 = map.values(); Stream stream4 = map2.stream(); - map.entrySet().stream()
- Stream.of(arr); // 根据数组获取流
常用方法
方法名称 | 方法作用 | 方法种类 |
---|---|---|
count | 统计个数 | 终结方法 |
forEach | 逐一处理 | 终结方法 |
filter | 过滤 | 函数拼接 |
limit | 取用前几个 | 函数拼接 |
skip | 跳过前几个 | 函数拼接 |
map | 映射 | 函数拼接 |
concat | 组合 | 函数拼接 |
forEach 将每一个流元素交给相应的函数进行处理
filter 将一个流转换成另一个子集流
map 将流中的元素映射到另一个流中
1
2
3List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数
numbers.stream().map(i -> i * i).forEach(System.out::println);concat 将两个流合并为一个流
Stream<String> result = Stream.concat(streamA, streamB);
collect
1 | List<String> list2 = new ArrayList<>(); |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.