List集合的排序,取最值,根据某个元素取值,统计,求和

List集合的排序,取最值,根据某个元素取值,统计,求和

直接上代码


import lombok.extern.slf4j.Slf4j;

import java.util.*;
import java.util.stream.Collectors;

@Slf4j
public class Test {

    public static void main(String[] args) {

        User user1 = new User();
        user1.setName("菜鸟");
        user1.setAge(12);
        User user2 = new User();
        user2.setName("新手");
        user2.setAge(17);
        User user3 = new User();
        user3.setName("萌新");
        user3.setAge(14);

        List<User> userList = new ArrayList<User>();
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);

        System.out.println("初始无排序:");
        userList.forEach(u -> System.out.println(u.getAge()));

        //按照user的 age进行排序
        userList.sort(Comparator.comparing(User::getAge)); // 正序
        System.out.println("正序==========================");
        userList.forEach(u -> System.out.println(u.getAge()));

        userList.sort(Comparator.comparing(User::getAge).reversed()); // 倒序
        System.out.println("倒序==========================");
        userList.forEach(u -> System.out.println(u.getAge()));

        System.out.println("==========================");

        //获取年龄最大的User
        User maxAge = userList.stream().max(Comparator.comparing(User::getAge)).get();
        System.out.println("最大年龄:"+maxAge.getAge());

        //获取年龄最小的User
        User minAge = userList.stream().min(Comparator.comparing(User::getAge)).get();
        System.out.println("最小年龄:"+minAge.getAge());

        //过滤出年龄是17的
        List<User> userList1 = userList.stream().filter(user-> user.getAge() == 17).collect(Collectors.toList());
        System.out.println("过滤出年龄是17的:"+userList1.toString());

        //统计年龄等于17的个数
        long count = userList.stream().filter(user-> user.getAge() == 17).count();
        System.out.println("统计年龄等于17的个数:"+count);

        //获得年龄的平均值
        double db = userList.stream().mapToInt(user-> user.getAge()).average().getAsDouble();
        System.out.println("获得年龄的平均值:"+db);

        //年龄和
        int sum = userList.stream().mapToInt(user-> user.getAge()).sum();
        System.out.println("年龄和:"+sum);

    }

static class User{
    public String name;
    public Integer age;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值