JDK1.8 stream().filter()的用法
时间: 2023-07-21 08:12:50 浏览: 52
JDK1.8中的stream()和filter()是Java8中新增的流式API,可以用于集合的筛选和过滤。
stream()方法可以将集合转换为一个流,filter()方法可以对流中的元素进行过滤,留下符合条件的元素。具体用法如下:
假设我们有一个List<String>集合,我们需要筛选出其中长度大于等于5的元素,可以这样写:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "watermelon");
List<String> newList = list.stream().filter(str -> str.length() >= 5).collect(Collectors.toList());
```
以上代码中,我们使用了stream()方法将list集合转换为一个流,然后使用filter()方法对流中的元素进行过滤,只留下长度大于等于5的元素,最后使用collect()方法将过滤后的结果转换为一个新的List集合。
除了filter()方法外,还有很多其他的流式API,例如map()、sorted()、distinct()等等,可以根据实际需要进行使用。
相关问题
jdk1.8stream求交集
可以使用Java 8中的Stream API来求两个集合的交集,示例代码如下:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [3, 4, 5]
```
这段代码中,我们使用了Stream的filter方法来筛选出list1中与list2相同的元素,然后使用collect方法将结果收集到一个List中。
jdk1.8的stream
JDK1.8引入了Stream API,它是一种新的抽象层,用于对集合对象进行函数式操作。Stream API可以极大地简化Java程序的编写,并且可以提高程序的性能。Stream API提供了一种高效且易于使用的处理数据的方式,它可以让我们以一种声明式的方式来处理数据,而不是以命令式的方式。
Stream API主要包含以下三个部分:
1.创建Stream流对象:可以通过集合、数组、静态工厂方法等方式来创建Stream流对象。
2.中间操作:可以对Stream流对象进行过滤、排序、映射等操作,这些操作都是中间操作,它们不会改变原始的数据源,而是返回一个新的Stream流对象。
3.终止操作:可以对Stream流对象进行计算、收集等操作,这些操作都是终止操作,它们会触发Stream流对象的计算,并返回计算结果。
下面是一个简单的示例,演示了如何使用Stream API对一个整数集合进行过滤和计算:
```java
import java.util.Arrays;
import java.util.List;
public class StreamDemo {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用Stream API对集合进行过滤和计算
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
System.out.println("集合中所有偶数的和为:" + sum);
}
}
```