首页 > 其他分享 >Stream流reduce使用sum,min,max

Stream流reduce使用sum,min,max

时间:2023-05-14 13:32:31浏览次数:52  
标签:name Stream min max age actor personList new public

public class Actor {
    private String name;
    private int age;
    private List<Person> personList = new ArrayList<Person>();

    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;
    }

    public List<Person> getPersonList() {
        return personList;
    }

    public void setPersonList(List<Person> personList) {
        this.personList = personList;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Actor actor = (Actor) o;
        return age == actor.age &&
                Objects.equals(name, actor.name) &&
                Objects.equals(personList, actor.personList);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age, personList);
    }

    @Override
    public String toString() {
        return "Actor{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", personList=" + personList +
                '}';
    }
}
static List<Actor> actors = new ArrayList<>();


    private static void initPerson() {
        List<Person> personList1 = new ArrayList<Person>();
        personList1.add(new Person("张三", 8, 3000));
        personList1.add(new Person("李四", 38, 7000));

        Actor actor1 = new Actor();
        actor1.setAge(11);
        actor1.setName("user1");
        actor1.setPersonList(personList1);
        actors.add(actor1);


        List<Person> personList2 = new ArrayList<Person>();
        personList2.add(new Person("孙六", 38, 9000));
        personList2.add(new Person("王五", 28, 7000));
        personList2.add(new Person("李四", 38, 7000));

        Actor actor2 = new Actor();
        actor2.setAge(12);
        actor2.setName("user2");
        actor2.setPersonList(personList2);
        actors.add(actor2);
    }

    public static void main(String[] args) {
        initPerson();

        //reduce 求sum
        Integer sum = actors.stream().map(actor -> actor.getAge()).reduce(0, (result, element) -> result + element);
        System.out.println(sum);

        //reduce 求max
        Integer max = actors.stream().map(actor -> actor.getAge()).reduce(Integer.MIN_VALUE, (result, element) -> result > element ? result:element);
        System.out.println(max);

        //reduce 求min
        Integer min = actors.stream().map(actor -> actor.getAge()).reduce(Integer.MAX_VALUE, (result, element) -> result > element ? element:result);
        System.out.println(min);
    }

标签:name,Stream,min,max,age,actor,personList,new,public
From: https://blog.51cto.com/u_16096846/6274864

相关文章

  • 如何使用 iPad Pro 作为 Mac mini 的外接屏幕 All In One
    如何使用iPadPro作为Macmini的外接屏幕AllInOneDell显示器3年质保过期后,坏了就无法维修了,商品下架......
  • 【LeetCode剑指offer#04】包含min函数的栈、栈的压入、弹出序列(辅助栈的应用)
    包含min函数的栈https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof/定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用min、push及pop的时间复杂度都是O(1)。示例:MinStackminStack=newMinStack();minStack.push(-2);......
  • gstreamer查看element关系图
    使用gstreamerAPI实现功能时,我一般先用gst-launch-1.0验证可行性和效果,然后再编码实现,这个过程中需要分析下各element的连接关系,而gstreamer提供了一套机制生成dot文件,方便我们查看各个阶段的dot图。命令行命令行只需要设置环境变量GST_DEBUG_DUMP_DOT_DIR即可,例如:GST_DEBUG_D......
  • WSL Ubuntu 安装 minikube
    一、安装WSLUbuntu1、首先WindowsMicrosoftStore安装Ubuntu。2、解决报错:1、未安装WSL支持WslRegisterDistributionfailedwitherror:0x8007019eInstalling,thismaytakeafewminutes...InstallationFailed!Error:0x8007019ePressanykeytocontinue......
  • Stream流根据属性去重
    List根据属性去重创建一个user集合Useruser1=newUser("user1",18,"AAA");Useruser2=newUser("user2",18,"BBB");Useruser3=newUser("user3",18,"AAA");Useruser4=newUs......
  • Stream流anyMatch,allMatch,noneMatch
    publicclassActor{privateStringname;privateintage;privateList<Person>personList=newArrayList<Person>();publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.na......
  • 3dmax正常卸载方法
    1.卸载在系统中搜索找到这个工具(低版本如果没有或者没找到,请在控制面板或者360或者腾讯管或者用你能想到的卸载工具进行卸载)勾选你需要卸载的版本2.删除历史文件删除以下文件夹里对应的max版本文件夹,不然重装后就和没卸载一样max根目录如果你修改了就自行找到安装目录C......
  • 关于 Delphi 中流的使用 用 TMemoryStream(内存流) 入门
    所谓"流",就是一段数据或是一块内存;在进行流操作时,我们不必关心流中的数据到底是什么;只需要知道流的大小和当前的指针位置.所以流只有两个属性:Size、Position.对流的操作,不过就是读取和写入.所以流最主要的方法就是Read和Write.在很多控件的使用中,读取主要用Load......
  • XMind 2022更新,最新修复版XMind 2022下载
    XMindforMac是一款专业的思维导图软件,可以帮助用户更好地组织思维、管理信息、规划项目和解决问题。它提供了丰富的模板和工具,使用户能够创建美观、清晰、易于理解的思维导图。XMindforMac支持多种导图类型,包括思维导图、鱼骨图、组织结构图、流程图、时序图、脑图等,可以满足......
  • macOS terminal select text bug All In One
    macOSterminalselecttextbugAllInOne内存溢出❓bugs❌mousetrackingmodesolution✅Youhavesomehowactivatedtheterminal'smousetrackingmode.#resetmousetrackingmode$resethttps://apple.stackexchange.com/a/329807/346428demos(......