java stream流 教程
时间: 2023-10-14 12:30:25 浏览: 101
Java教程-流介绍和创建
Java 8 引入了一个新的 Stream API,它可以极大地简化 Java 集合(Collection)操作。Stream API 提供了非常多的操作方法,比如 filter、map、reduce、limit、sorted 等等,可以非常方便地对集合进行操作,同时提高了代码的可读性和简洁性。
下面是一些 Java Stream API 的基本使用方法:
1. 创建流
可以通过集合、数组等方式创建流,例如:
- 通过集合创建流:
```
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
```
- 通过数组创建流:
```
String[] array = new String[]{"a", "b", "c"};
Stream<String> stream = Arrays.stream(array);
```
- 通过 Stream.of() 创建流:
```
Stream<String> stream = Stream.of("a", "b", "c");
```
2. 中间操作
中间操作是指对流进行过滤、映射等操作,这些操作不会执行,只是返回一个新的流对象。
- filter():过滤元素
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.filter(s -> s.startsWith("a")).forEach(System.out::println);
```
上述代码将输出:
```
a
```
- map():映射元素
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.map(String::toUpperCase).forEach(System.out::println);
```
上述代码将输出:
```
A
B
C
```
- sorted():排序元素
```
Stream<String> stream = Stream.of("c", "a", "b");
stream.sorted().forEach(System.out::println);
```
上述代码将输出:
```
a
b
c
```
- distinct():去重元素
```
Stream<String> stream = Stream.of("a", "b", "c", "a");
stream.distinct().forEach(System.out::println);
```
上述代码将输出:
```
a
b
c
```
- limit():限制元素数量
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.limit(2).forEach(System.out::println);
```
上述代码将输出:
```
a
b
```
- skip():跳过元素数量
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.skip(1).forEach(System.out::println);
```
上述代码将输出:
```
b
c
```
- peek():查看元素
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.peek(System.out::println).forEach(s -> {});
```
上述代码将输出:
```
a
b
c
```
3. 终止操作
终止操作是指对流进行计算、收集等操作,这些操作会触发流的执行。
- forEach():遍历元素
```
Stream<String> stream = Stream.of("a", "b", "c");
stream.forEach(System.out::println);
```
上述代码将输出:
```
a
b
c
```
- count():计算元素数量
```
Stream<String> stream = Stream.of("a", "b", "c");
long count = stream.count();
System.out.println(count);
```
上述代码将输出:
```
3
```
- collect():收集元素
```
Stream<String> stream = Stream.of("a", "b", "c");
List<String> list = stream.collect(Collectors.toList());
System.out.println(list);
```
上述代码将输出:
```
[a, b, c]
```
以上是 Java Stream API 的基本使用方法,更多详细的操作方法可以参考 Java 官方文档。
阅读全文