java中从list中取id等于1的元素,如果没有符合条件的数据就取索引为0的元素,用stream流代码编写
时间: 2024-09-11 08:13:20 浏览: 32
在Java中,你可以使用Stream API来实现这个需求。首先假设你有一个List对象,其中包含自定义的对象(比如User),并且每个User对象都有一个id属性。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class User {
private int id;
// 其他属性...
}
List<User> userList = ... // 假设这是你的用户列表
Optional<User> foundUser = userList.stream()
.filter(user -> user.getId() == 1) // 过滤出id为1的用户
.findFirst(); // 如果找到就获取第一个,否则返回Optional.empty()
// 现在,foundUser如果存在,则是id为1的用户,否则是索引为0的默认值(因为findFirst()会返回第一个元素)
User firstOrDefault = foundUser.orElseGet(() -> userList.get(0)); // 使用orElseGet获取默认值
// 输出firstOrDefault或打印用户信息
System.out.println(foundUser.map(User::toString).orElse("No user with ID 1 or index 0"));
阅读全文