stream流的使用方法 全部举例说明
时间: 2023-10-11 13:13:32 浏览: 110
1. 从数组中创建一个流
```java
int[] arr = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(arr);
```
2. 使用 of 方法创建一个流
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
```
3. 使用 range 方法创建一个流
```java
IntStream stream = IntStream.range(1, 10);
```
4. 使用 filter 方法过滤流中的元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.filter(s -> s.startsWith("J")).forEach(System.out::println); // 输出 Java
```
5. 使用 map 方法将流中的元素映射成新的元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.map(String::toUpperCase).forEach(System.out::println); // 输出 JAVA PYTHON C++ RUBY
```
6. 使用 flatMap 方法将多个流合并成一个流
```java
Stream<List<Integer>> stream = Stream.of(Arrays.asList(1, 2), Arrays.asList(3, 4, 5));
stream.flatMap(Collection::stream).forEach(System.out::println); // 输出 1 2 3 4 5
```
7. 使用 sorted 方法对流中的元素进行排序
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.sorted().forEach(System.out::println); // 输出 C++ Java Python Ruby
```
8. 使用 distinct 方法对流中的元素进行去重
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby", "Java");
stream.distinct().forEach(System.out::println); // 输出 Java Python C++ Ruby
```
9. 使用 limit 方法限制流中元素的数量
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.limit(2).forEach(System.out::println); // 输出 Java Python
```
10. 使用 skip 方法跳过流中的前几个元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.skip(2).forEach(System.out::println); // 输出 C++ Ruby
```
11. 使用 forEach 方法对流中的每个元素进行操作
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
stream.forEach(s -> System.out.println("Hello, " + s)); // 输出 Hello, Java Hello, Python Hello, C++ Hello, Ruby
```
12. 使用 reduce 方法将流中的元素归约成一个值
```java
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
Optional<Integer> result = stream.reduce((a, b) -> a + b);
System.out.println(result.get()); // 输出 15
```
13. 使用 collect 方法将流中的元素收集成集合
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
List<String> list = stream.collect(Collectors.toList());
System.out.println(list); // 输出 [Java, Python, C++, Ruby]
```
14. 使用 anyMatch 方法判断流中是否存在符合条件的元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
boolean result = stream.anyMatch(s -> s.startsWith("J"));
System.out.println(result); // 输出 true
```
15. 使用 allMatch 方法判断流中的所有元素是否都符合条件
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
boolean result = stream.allMatch(s -> s.length() > 2);
System.out.println(result); // 输出 true
```
16. 使用 noneMatch 方法判断流中是否不存在符合条件的元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
boolean result = stream.noneMatch(s -> s.endsWith("s"));
System.out.println(result); // 输出 true
```
17. 使用 findFirst 方法获取流中的第一个元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
Optional<String> result = stream.findFirst();
System.out.println(result.get()); // 输出 Java
```
18. 使用 findAny 方法获取流中的任意一个元素
```java
Stream<String> stream = Stream.of("Java", "Python", "C++", "Ruby");
Optional<String> result = stream.findAny();
System.out.println(result.get()); // 输出 Java 或 Python 或 C++ 或 Ruby
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)