map stream filter
时间: 2023-09-06 16:12:46 浏览: 84
map、stream和filter是Java 8引入的一些函数式编程的特性,用于处理集合数据。
1. map:map是Stream接口的一个方法,它接受一个Function函数作为参数,将输入的元素按照指定的转换方式进行处理,并返回一个包含转换结果的新Stream。示例代码如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squaredNumbers); // 输出 [1, 4, 9, 16, 25]
```
在上面的例子中,通过map方法将原始列表中的每个元素平方,并将结果收集到一个新的列表中。
2. stream:stream是Java 8中新增的一个流(Stream)接口,它提供了一种对集合进行过滤、映射、排序等操作的方式。可以通过调用集合的stream()方法获取一个流对象。示例代码如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = numbers.stream();
```
通过stream可以对集合进行各种操作,比如filter、map和collect等。
3. filter:filter是Stream接口的一个方法,它接受一个Predicate函数作为参数,用于过滤符合条件的元素,并返回一个新的Stream。示例代码如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出 [2, 4]
```
在上面的例子中,通过filter方法筛选出原始列表中的偶数,并将结果收集到一个新的列表中。
总结:map、stream和filter是Java 8提供的强大的函数式编程特性,可以简化集合操作的代码,使代码更加简洁和易读。map用于对集合元素进行转换,stream用于获取集合的流对象,filter用于根据条件过滤集合元素。
阅读全文