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),以防列表为空。
相关推荐
七夜zippoe1 分钟前
依赖注入:构建可测试的Python应用架构
开发语言·python·架构·fastapi·依赖注入·反转
moxiaoran57536 分钟前
使用策略模式+装饰器模式实现接口防重复提交
java·装饰器模式
superman超哥6 分钟前
Rust 生命周期省略规则:编译器的智能推导机制
开发语言·后端·rust·编译器·rust生命周期·省略规则·智能推导
福楠6 分钟前
C++ STL | 容器适配器
c语言·开发语言·数据结构·c++
源代码•宸9 分钟前
GoLang基础语法(go语言结构、go语言变量、go语言常量、go语言运算符)
开发语言·后端·golang
林恒smileZAZ11 分钟前
前端技巧:检测到省略号文本自动显示 Tooltip
开发语言·前端·javascript
Zzz不能停11 分钟前
阻止冒泡和阻止元素默认行为的区别
开发语言·前端·javascript
AM越.12 分钟前
Java设计模式超详解--代理设计模式(含uml图)
java·设计模式·uml
小白学大数据14 分钟前
Redis 在定时增量爬虫中的去重机制与过期策略
开发语言·数据库·redis·爬虫