Java 8的流(Stream)和Lambda表达式求List中age最大和最小的年龄
- 要查询一个包含字符串类型age字段的User对象的列表(List)中的最大和最小年龄,你可以使用Java 8的流(Stream)和Lambda表达式来实现。
import java.util.*; class User { private String name; private String age; 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),以防列表为空。