使用java的stream流中筛选出最小年龄,有一个User用户类,包含名字,id,年龄,标识,年龄分别为18,18,23,30,36,我想筛选出最低年龄的用户,设置一个标识true
时间: 2023-12-14 09:02:32 浏览: 20
好的,您可以使用以下代码实现:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class User {
private String name;
private int id;
private int age;
private boolean flag;
public User(String name, int id, int age, boolean flag) {
this.name = name;
this.id = id;
this.age = age;
this.flag = flag;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public int getAge() {
return age;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
public class Main {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 1, 18, false));
userList.add(new User("Jack", 2, 18, false));
userList.add(new User("Mary", 3, 23, false));
userList.add(new User("Lucy", 4, 30, false));
userList.add(new User("Bob", 5, 36, false));
// 找到最小年龄的用户
User minAgeUser = userList.stream()
.min(Comparator.comparing(User::getAge))
.orElse(null);
// 设置标识为true
if (minAgeUser != null) {
minAgeUser.setFlag(true);
}
// 输出结果
for (User user : userList) {
System.out.println(user.getName() + " " + user.getId() + " " + user.getAge() + " " + user.isFlag());
}
}
}
```
运行结果:
```
Tom 1 18 true
Jack 2 18 false
Mary 3 23 false
Lucy 4 30 false
Bob 5 36 false
```