Java 8的流(Stream)和Lambda表达式求List<User>中age最大和最小的年龄

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),以防列表为空。
相关推荐
方也_arkling5 分钟前
【Java-Day13】内部类
java·开发语言
用户298698530146 分钟前
Java 开发中读取与解析 Word 文档的实践记录
java·后端
INGNIGHT7 分钟前
984.不含 AAA 或 BBB 的字符串(贪心)
开发语言·算法·leetcode
Ws_9 分钟前
C# 桌面端开发工程师面试题 + 参考答案
开发语言·面试·c#
梦幻通灵10 分钟前
Java传递负数金额被默认转化为0处理方案
java·开发语言
未若君雅裁14 分钟前
ArrayList vs LinkedList:四维对比,该怎么选?
java
七夜zippoe15 分钟前
OpenClaw Canvas 执行:JavaScript 注入实战
开发语言·javascript·udp·canvas·openclaw
组合缺一18 分钟前
Solon Server 启动模式深度解析:从 0.3MB 内核到 10+ Server 插件
java·websocket·http·solon·server
雨落在了我的手上20 分钟前
初识java(十五):字符串-String类
java·开发语言
zzx2006__20 分钟前
JavaScript最终考核
开发语言·前端·javascript