介绍一下stream()流式编程及用法
时间: 2023-07-16 07:17:30 浏览: 93
简单总结Java IO中stream流的使用方法
5星 · 资源好评率100%
Java 8 引入了一个新的概念,即流式编程(Stream API),它是一种用于处理集合数据的高级抽象概念。使用流式编程,可以通过一系列操作来简化集合的处理。下面是一些流式编程的用法:
1. 创建流
Java 8 中,可以通过集合、数组、生成器以及 I/O 操作等方式来创建流。以下是一些示例:
```java
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream1 = list.stream();
Stream<String> stream2 = Stream.of("a", "b", "c");
String[] arr = new String[]{"a", "b", "c"};
Stream<String> stream3 = Arrays.stream(arr);
Stream<Integer> stream4 = Stream.iterate(0, n -> n + 2).limit(5);
Stream<String> stream5 = Files.lines(Paths.get("file.txt"));
```
2. 中间操作
在创建流之后,可以通过一系列中间操作来对流进行处理。常见的中间操作包括过滤、映射、排序、去重等操作。以下是一些示例:
```java
Stream<String> stream = Stream.of("apple", "banana", "pear", "orange");
// 过滤操作,输出长度大于 5 的字符串
stream.filter(s -> s.length() > 5)
.forEach(System.out::println);
// 映射操作,将每个字符串转换成大写后输出
Stream<String> stream2 = Stream.of("apple", "banana", "pear", "orange");
stream2.map(String::toUpperCase)
.forEach(System.out::println);
// 排序操作,按照字符串长度升序排序后输出
Stream<String> stream3 = Stream.of("apple", "banana", "pear", "orange");
stream3.sorted(Comparator.comparing(String::length))
.forEach(System.out::println);
// 去重操作,去除重复的元素并输出
Stream<String> stream4 = Stream.of("apple", "banana", "pear", "orange", "apple");
stream4.distinct()
.forEach(System.out::println);
```
3. 终止操作
在对流进行中间操作之后,需要通过终止操作来将结果输出或存储。常见的终止操作包括 forEach、toArray、collect 等。以下是一些示例:
```java
Stream<String> stream = Stream.of("apple", "banana", "pear", "orange");
// 输出元素
stream.forEach(System.out::println);
// 将元素转换成数组
String[] arr = stream.toArray(String[]::new);
// 将元素收集到集合中
List<String> list = stream.collect(Collectors.toList());
```
这些是流式编程的一些基本用法,通过流式编程,可以更加简洁、高效地处理集合数据。
阅读全文