stream流筛选list中字段
时间: 2023-11-06 08:08:45 浏览: 78
这是一个技术问题,我可以帮您解答。您可以通过Java 8中的Stream API来筛选List中的字段。例如:
List<String> list = Arrays.asList("apple", "banana", "orange", "grape", "watermelon");
List<String> filteredList = list.stream().filter(str -> str.startsWith("a")).collect(Collectors.toList());
这段代码会筛选出以字母"a"开头的元素,将它们收集到一个新的List中。
相关问题
java stream流,筛选出list中的某个字段
可以使用Java 8中的Stream API来对List进行筛选。假设我们有一个List<User>,每个User对象都有属性name,我们想筛选出所有名字为"Tom"的User对象的name属性,可以这样实现:
```
List<User> userList = ... // 假设我们有一个User对象的List
List<String> tomNameList = userList.stream()
.filter(user -> "Tom".equals(user.getName()))
.map(User::getName)
.collect(Collectors.toList());
```
这里使用了Stream的filter方法来过滤列表中的元素,然后使用map方法将每个User对象转换成它的名字属性,最后使用collect方法将符合条件的元素收集到一个新的List中。其中,lambda表达式 `user -> "Tom".equals(user.getName())` 表示对于每个User对象,只有它的名字是"Tom"时才会被保留,`User::getName` 表示获取User对象的name属性。最终得到的是一个名字为"Tom"的User对象的name属性的List。
list通过stream筛选字段
可以使用 Java 8 中的 Stream API 来筛选 List 中的字段。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "durian");
// 使用 Stream filter 方法筛选字段
List<String> filteredFruits = fruits.stream()
.filter(fruit -> fruit.startsWith("b")) // 根据条件筛选字段,例如以 "b" 开头的字段
.collect(Collectors.toList());
System.out.println(filteredFruits);
}
}
```
在上述示例中,我们有一个包含水果名称的 List。我们使用 Stream API 的 filter 方法来筛选以字母 "b" 开头的水果名称。最后,我们使用 collect(Collectors.toList()) 方法将筛选后的水果名称收集到一个新的 List 中,并输出结果。
你可以根据自己的需求修改条件和字段名称来实现你想要的筛选结果。
阅读全文