利用JAVA流处理-统计男员工人数;找出所有薪资大于 5000 元的女员工;找出大于平均年龄的员工
生活随笔
收集整理的這篇文章主要介紹了
利用JAVA流处理-统计男员工人数;找出所有薪资大于 5000 元的女员工;找出大于平均年龄的员工
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建一個Employee JAVABean對象
package ght04_Stream; import java.util.ArrayList; import java.util.List;public class Employee { // 員工類private String name; // 姓名private int age; // 年齡private double salary; // 工資private String sex; // 性別private String dept; // 部門// 構造方法public Employee(String name, int age, double salary, String sex, String dept) {this.name = name;this.age = age;this.salary = salary;this.sex = sex;this.dept = dept;}// 重寫此方法,方便打印輸出員工信息public String toString() {return "name=" + name + ", age=" + age + ", salary=" + salary + ", sex=" + sex + ", dept=" + dept;}// 以下是員工屬性的getter方法public String getName() {return name;}public int getAge() {return age;}public double getSalary() {return salary;}public String getSex() {return sex;}public String getDept() {return dept;}static List<Employee> getEmpList() { // 提供數據初始化方法List<Employee> list = new ArrayList<Employee>();// 添加員工數據list.add(new Employee("老張", 40, 9000, "男", "運營部"));list.add(new Employee("小劉", 24, 5000, "女", "開發部"));list.add(new Employee("大剛", 32, 7500, "男", "銷售部"));list.add(new Employee("翠花", 28, 5500, "女", "銷售部"));list.add(new Employee("小馬", 21, 3000, "男", "開發部"));list.add(new Employee("老王", 35, 6000, "女", "人事部"));list.add(new Employee("小王", 21, 3000, "女", "人事部"));return list;} }利用JAVA流處理Stream測試數據
package ght04_Stream;import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream;public class test {public static void main(String[] args) {List<Employee> list = Employee.getEmpList(); //get test data from public classStream<Employee> stream = list.stream(); //get stream object// 分組規則方法,按照員工進行分級(sex)Function<Employee, String> f = Employee::getSex;// 按照部門分成若干List集合,集合中保存員工對象,返回成MapMap<String, List<Employee>> map = stream.collect(Collectors.groupingBy(f));Set<String> keySet = map.keySet(); // 獲取Map的 all sexint age = 0; //年齡總和double avg_age = 0.0;for ( Employee e : list ){age += e.getAge();}avg_age = age/list.size();int num = 0;int salary = 5000;int s_num = 0;int a_num = 0;List<Employee>employees = new ArrayList<>();for (String sex : keySet) { // 遍歷部門名稱集合// find sexif(sex == "男"){List<Employee> deptList = map.get(sex); // 獲取sex == "男"System.out.println("男員工人數為: "+deptList.size());for(Employee e : deptList){if(e.getAge() > avg_age){employees.add(e);}}}else{List<Employee> deptList = map.get(sex); // 獲取sex == " 女"for(Employee d : deptList){if(d.getSalary() > 5000){s_num++;}if( d.getAge() > avg_age){employees.add(d);}}System.out.println("薪資大于5000的女員工人數為: "+s_num);}}System.out.println("大于平均年齡的員工: ");for (Employee emp : employees) { // 遍歷員工集合System.out.println("\t" + emp); // 輸出員工信息}} }?
總結
以上是生活随笔為你收集整理的利用JAVA流处理-统计男员工人数;找出所有薪资大于 5000 元的女员工;找出大于平均年龄的员工的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IBM之通病
- 下一篇: kafka消息消费有延迟_简易实现kaf