Java 8的流(Stream)和Lambda表达式求List中age最大和最小的年龄
- 要查询一个包含字符串类型age字段的User对象的列表(List)中的最大和最小年龄,你可以使用Java 8的流(Stream)和Lambda表达式来实现。
java
import java.util.*;
class User {
private String name;
private String age;
// 构造函数、getter和setter方法等...
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
List<User> users = new ArrayList<>();
// 添加用户对象到列表中...
// 查询最大和最小年龄
int minAge = users.stream()
.mapToInt(user -> Integer.parseInt(user.getAge()))
.min()
.orElse(-1); // 提供一个默认值,以防列表为空
int maxAge = users.stream()
.mapToInt(user -> Integer.parseInt(user.getAge()))
.max()
.orElse(-1); // 提供一个默认值,以防列表为空
System.out.println("最小年龄:" + minAge);
System.out.println("最大年龄:" + maxAge);
}
}
- 在上面的示例中,我们首先创建了一个包含User对象的列表。然后,我们使用流操作来将每个用户的年龄字符串转换为整数,并使用min()和max()方法来找到最小和最大的年龄。最后,我们打印出结果。请注意,我们在min()和max()方法中提供了一个默认值(-1),以防列表为空。