首页 > 其他分享 >Stream流操作示例

Stream流操作示例

时间:2024-01-25 18:23:02浏览次数:23  
标签:Stream getWage 示例 new list2 getBonus 操作 e1 e2


 1 private static double oneMoney;
 2     private static double twoMoney;
 3     private static double sumMoney;
 4 
 5     public static void main(String[] args) {
 6         List<Employee> list1 = new ArrayList<>();
 7         list1.add(new Employee("猪八戒", "男", 500.0, 100.0, null));
 8         list1.add(new Employee("孙悟空", "男", 500.0, 100.0, null));
 9         list1.add(new Employee("白骨精", "女", 600.0, 100.0, null));
10         list1.add(new Employee("蜘蛛精", "女", 500.0, 100.0, null));
11 
12         List<Employee> list2 = new ArrayList<>();
13         list2.add(new Employee("红孩儿", "男", 500.0, 100.0, null));
14         list2.add(new Employee("牛魔王", "男", 500.0, 100.0, null));
15         list2.add(new Employee("玉兔精", "女", 600.0, 100.0, null));
16         list2.add(new Employee("铁扇公主", "女", 500.0, 100.0, null));
17         list2.add(new Employee("小白龙", "男", 500.0, 100.0, null));
18 
19         //  开发一部最高工资
20         //  直接用 .map() 加工
21         TopperFormer top1 = list1.stream().max((e1, e2) -> Double.compare(e1.getWage() + e1.getBonus(), e2.getWage() + e2.getBonus()))
22                 .map(e -> new TopperFormer(e.getName(), e.getWage() + e.getBonus())).get();
23         System.out.println("开发一部最高工资:" + top1);
24 
25         //  总工资平均工资
26         list1.stream().sorted((e1, e2) -> Double.compare(e1.getWage() + e1.getBonus(), e2.getWage() + e2.getBonus()))
27                 .skip(1).limit(list1.size() - 2).forEach(e ->{
28                     oneMoney += e.getWage() + e.getBonus();
29                 });
30         System.out.println("开发一部的平均工资是:" + oneMoney / (list1.size() - 2));
31 
32         //  开发二部
33         //  开发二部最高工资
34         TopperFormer top2 = list2.stream().max((e1, e2) -> Double.compare(e1.getWage() + e1.getBonus(), e2.getWage() + e2.getBonus()))
35                 .map(e -> new TopperFormer(e.getName(), e.getWage() + e.getBonus())).get();
36         System.out.println("开发二部最高工资:" + top2);
37         //  总工资平均工资
38         list2.stream().sorted((e1, e2) -> Double.compare(e1.getWage() + e1.getBonus(), e2.getWage() + e2.getBonus()))
39                 .skip(1).limit(list2.size() - 2).forEach(e ->{
40                     twoMoney += e.getWage() + e.getBonus();
41                 });
42         System.out.println("开发二部的平均工资是:" + twoMoney / (list2.size() - 2));
43         
44         //  两个部门平均工资
45         Stream<Employee> s1 = list1.stream();
46         Stream<Employee> s2 = list2.stream();
47         Stream<Employee> s3 = Stream.concat(s1, s2);
48         s3.sorted((e1, e2) -> Double.compare(e1.getWage() + e1.getBonus(), e2.getWage() + e2.getBonus()))
49                 .skip(1).limit(list1.size() + list2.size() - 2).forEach(e ->{
50                     sumMoney += (e.getWage() + e.getBonus());
51                 });
52         
53         //  两个部门
54         //  BigDecimal 精确数字
55         BigDecimal a = BigDecimal.valueOf(sumMoney);
56         BigDecimal b = BigDecimal.valueOf(list1.size() + list2.size() - 2);
57         System.out.println("开发部的平均工资是:" + a.divide(b, 2, RoundingMode.HALF_UP));
58     }

 

标签:Stream,getWage,示例,new,list2,getBonus,操作,e1,e2
From: https://www.cnblogs.com/dsds/p/17987860

相关文章

  • P8659 [蓝桥杯 2017 国 A] 数组操作 题解
    题目链接:洛谷或者蓝桥杯或者C语言中文网几个OJ的AC记录:忘了哪个OJ的:洛谷:C语言中文网:蓝桥杯:emmmmmmm,好像每个OJ给的时限和空间还不一样,蓝桥杯官方还给了$3s$和$2G$,C语言中文网机子比较老可能,挺卡常的,开了个究极快读和指令集就过去了,也可以自己调下重构常数,偷懒......
  • Stream流
    1publicstaticvoidmain(String[]args){2//Collection集合获取流3Collection<String>collection=newArrayList<>();4Stream<String>stream=collection.stream();56//Map集合获取流7M......
  • 协程操作
    基于async和await关键字的协程可以实现异步编程,这也是目前Python异步相关的主流技术。(一)asyncio模块asyncio模块是Python中实现异步的一个模块,该模块在Python3.4的时候发布asycnio和await关键字在Python3.5引入(二)事件循环事件循环就是可以把它当作一个while循环,这个while......
  • python之实现文件增删改查操作
    实现文件增删改查操作         1.写入文件'''以w形式打开文件,写入记录'''1#!/usr/bin/python2withopen('test','w',encoding='utf-8')asf:3'''插入数据'''4f.writelines('......
  • MIT 6.S081入门lab1 操作系统及其接口
    MIT6.S081入门lab1操作系统及其接口一、参考资料阅读与总结1.xv6book书籍阅读(操作系统接口)a.总览操作系统的任务:多个程序之间共享计算机(计算机的硬件管理+任务调度)操作系统接口:使用系统调用,调用内核服务为用户端程序提供给服务(即实现对进程的调度和硬件的管理)操作系统......
  • rust使用lazy_static对全局变量多线程并发读写示例
    首先需要在项目依赖Cargo.toml添加lazy_static依赖项[dependencies]lazy_static="1.4.0"示例代码如下:uselazy_static::lazy_static;usestd::sync::{RwLock,RwLockReadGuard,RwLockWriteGuard};usestd::thread;#[derive(Debug)]structSharedData{data:Vec<......
  • Linux新手村必备!这些常用操作命令你掌握了吗?
    在计算机的世界里,Linux操作系统以其强大的功能和灵活性受到了广大程序员和IT爱好者的喜爱。然而,对于初学者来说,Linux的操作命令可能会显得有些复杂和难以理解。今天,我们就来一起探索一些Linux常用操作命令,让你的计算机操作更加流畅。一、目录操作首先带大家了解一下Linux系统目......
  • Python requests模块POST提交请求,不同Content-type对应的参数示例
    1.'content-type':'application/x-www-form-urlencoded'data参数提交文本或字典都可以headers为空时,data提交content-type默认也是application/x-www-form-urlencodedrequests.post(url,headers={'content-type':'application/x-www-form-urlencoded'}......
  • MyBatis手写SQL批量操作
    一、查询List<ArticleAccumulatedIncomeDTO>batchAccumulatedIncome(List<Long>ids);<selectid="batchAccumulatedIncome"resultMap="ArticleSumIncome">selectarticle_id,sum(income)asaccumulated_incomefromwalle......
  • VMware虚拟机安装优麒麟(ubuntukylin)操作系统
    1.镜像下载官网:https://www.ubuntukylin.com/优麒麟官网提供的宣传视频:https://www.ubuntukylin.com/upload/video/202204/1650594049260581.mp4官网提供的视频后续随着版本的更新,此视频可能失效,去官网查看最新的即可,这不是重点1.1搜索出优麒麟官网,下载镜像下载镜像,......