stream流操作集合的方式
时间: 2023-07-08 17:48:06 浏览: 56
Stream是Java 8引入的一种处理数据集合的API,它可以让我们更加方便、高效地操作集合。以下是使用Stream操作集合的常用方式:
1. 遍历集合:使用forEach()方法遍历集合中的每个元素,然后对每个元素执行指定的操作。
2. 过滤集合:使用filter()方法过滤集合中的元素,然后返回满足条件的元素组成的新集合。
3. 映射集合:使用map()方法对集合中的每个元素进行映射,然后返回由映射结果组成的新集合。
4. 排序集合:使用sorted()方法对集合中的元素进行排序,然后返回排序后的新集合。
5. 统计集合:使用count()、sum()、max()、min()等方法对集合中的元素进行统计。
6. 匹配集合:使用anyMatch()、allMatch()、noneMatch()等方法对集合中的元素进行匹配。
以下是使用Stream操作集合的代码示例:
1. 遍历集合:
```java
List<String> list = Arrays.asList("Java", "Python", "C++", "Ruby");
list.stream().forEach(item -> System.out.println(item));
```
输出结果:
```
Java
Python
C++
Ruby
```
2. 过滤集合:
```java
List<String> list = Arrays.asList("Java", "Python", "C++", "Ruby");
List<String> filteredList = list.stream().filter(item -> item.startsWith("J")).collect(Collectors.toList());
System.out.println(filteredList);
```
输出结果:
```
[Java]
```
3. 映射集合:
```java
List<String> list = Arrays.asList("Java", "Python", "C++", "Ruby");
List<Integer> lengthList = list.stream().map(item -> item.length()).collect(Collectors.toList());
System.out.println(lengthList);
```
输出结果:
```
[4, 6, 3, 4]
```
4. 排序集合:
```java
List<String> list = Arrays.asList("Java", "Python", "C++", "Ruby");
List<String> sortedList = list.stream().sorted().collect(Collectors.toList());
System.out.println(sortedList);
```
输出结果:
```
[C++, Java, Python, Ruby]
```
5. 统计集合:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
long count = list.stream().count();
int sum = list.stream().mapToInt(item -> item).sum();
int max = list.stream().mapToInt(item -> item).max().getAsInt();
int min = list.stream().mapToInt(item -> item).min().getAsInt();
System.out.println("count: " + count);
System.out.println("sum: " + sum);
System.out.println("max: " + max);
System.out.println("min: " + min);
```
输出结果:
```
count: 5
sum: 15
max: 5
min: 1
```
6. 匹配集合:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
boolean anyMatch = list.stream().anyMatch(item -> item > 3);
boolean allMatch = list.stream().allMatch(item -> item > 0);
boolean noneMatch = list.stream().noneMatch(item -> item > 5);
System.out.println("anyMatch: " + anyMatch);
System.out.println("allMatch: " + allMatch);
System.out.println("noneMatch: " + noneMatch);
```
输出结果:
```
anyMatch: true
allMatch: true
noneMatch: true
```
以上就是使用Stream操作集合的方式,希望能对您有所帮助。