对一个List<String>,使用lambda表达式和Stream完成过滤操作
时间: 2024-05-01 16:22:29 浏览: 94
可以使用`filter()`方法进行过滤操作。例如,假设我们有一个`List<String>`类型的列表,名为`stringList`,我们想要过滤出其中所有包含字母"a"的字符串,可以使用以下代码:
```
List<String> filteredList = stringList.stream()
.filter(str -> str.contains("a"))
.collect(Collectors.toList());
```
这里使用了`stream()`方法将列表转换为流,然后使用`filter()`方法过滤出符合条件的元素,最后使用`collect()`方法将流转换为一个新的列表。在`filter()`方法中,使用Lambda表达式`str -> str.contains("a")`表示对于每个元素`str`,只有当其包含字母"a"时才会被保留下来。
相关问题
对一个List<String>,使用lambda表达式和Stream完成过滤操作完整例子代码
下面是一个完整的例子代码:
```java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
// 使用lambda表达式进行过滤
List<String> filteredList = list.stream()
.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.toList();
System.out.println(filteredList);
}
}
```
输出结果为:
```
[CHERRY]
```
在上面的代码中,我们首先创建了一个包含五个字符串的List。接下来,我们使用`stream()`方法将List转换为Stream。然后,我们使用`filter()`方法过滤出所有以字母"c"开头的字符串。接着,我们使用`map()`方法将过滤出的字符串转换为大写字母。最后,我们使用`sorted()`方法对结果进行排序,并使用`toList()`方法将结果转换为List。最终,我们打印出了过滤后的List。
用java 编写 对一个List<String>,使用lambda表达式和Stream完成过滤操作。
可以使用以下代码实现对List<String>的过滤操作:
```java
List<String> list = Arrays.asList("apple", "banana", "grape", "orange", "kiwi");
List<String> filteredList = list.stream()
.filter(s -> s.startsWith("a"))
.collect(Collectors.toList());
System.out.println(filteredList);
```
这段代码使用了Stream的filter()方法,该方法接受一个Lambda表达式作为参数,根据Lambda表达式的条件对Stream中的元素进行过滤,最终返回一个新的Stream。在上述代码中,Lambda表达式的条件是判断字符串是否以字母"a"开头,最终将过滤后的元素收集到一个List中并输出。
阅读全文