发表时间:2022-03-23来源:网络
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。

筛选工资大于8000的员工:

输出集合元素数量
public static void main(String[] args) { List employees = getEmployeeDataList(); employees.stream().limit(3).forEach(t-> System.out.println("输出集合元素数量->>>"+t)); }
过滤掉前面的2个元素
public static void main(String[] args) { List employees = getEmployeeDataList(); employees.stream().skip(2).forEach(t-> System.out.println("过滤掉前面的2个元素->>>"+t)); }
集合去重
public static void main(String[] args) { List list = new ArrayList(); list.add(new Employee(1,"张三",20,8500D,1)); list.add(new Employee(1,"张三",20,8500D,1)); list.add(new Employee(1,"张三",20,8500D,1)); list.add(new Employee(1,"张三",20,8500D,1)); list.add(new Employee(1,"张三",20,8500D,1)); list.stream().distinct().forEach(t-> System.out.println("集合去重->>>"+t)); }
大小写转换
public static void main(String[] args) { List list = Arrays.asList("a", "b", "c", "d"); list.stream().map(str -> str.toUpperCase(Locale.ROOT)).forEach(t-> System.out.println("大小写转换->>>"+t)); }
获取员工姓名大于3的员工姓名


先按照年龄从小到大排序,当年龄一样的时候,按照工资高低进行排序
public static void main(String[] args) { List list = getEmployeeDataList(); list.stream().sorted((e1,e2)->{ int age = Integer.compare(e1.getAge(),e2.getAge()); if(age != 0){ return age; }else { return Double.compare(e1.getSalary(),e2.getSalary()); } }).forEach(System.out::println); }
allMatch:检查是否匹配所有元素
判断员工年龄是否都大于18岁
public static void main(String[] args) { List list = getEmployeeDataList(); boolean allMatch = list.stream().allMatch(e -> e.getAge() > 18); System.out.println(allMatch); } 全部满足返回 true 、否则返回falseanyMatch:检查是否至少匹配一个元素
是否存在有员工工资大于8000的
public static void main(String[] args) { List list = getEmployeeDataList(); boolean anyMatch = list.stream().anyMatch(employee -> employee.getSalary() > 8000); System.out.println(anyMatch); } 存在一个元素条件满足即可返回truenoneMatch:检查是否没有匹配的元素
查询是否有姓张的员工
public static void main(String[] args) { List list = getEmployeeDataList(); boolean noneMatch = list.stream().noneMatch(employee -> employee.getName().startsWith("张")); System.out.println(noneMatch); } 返回false,说明有,否则没有findFirst:返回第一个元素
public static void main(String[] args) { List list = getEmployeeDataList(); Optional first = list.stream().findFirst(); System.out.println(first); }findAny:返回当前流中的任意元素
public static void main(String[] args) { List list = getEmployeeDataList(); Optional first = list.parallelStream().findAny(); System.out.println(first); }count:返回流中元素的总个数
查询员工工资大于8000的人数
public static void main(String[] args) { List list = getEmployeeDataList(); long count = list.stream().filter(employee -> employee.getSalary() > 8000).count(); System.out.println(count); }max:返回流中的最大值
查询最高的员工工资
public static void main(String[] args) { List list = getEmployeeDataList(); Stream doubleStream = list.stream().map(employee -> employee.getSalary()); Optional max = doubleStream.max(Double::compare); System.out.println(max); }min:返回流中的最小值
查询最低的员工工资
public static void main(String[] args) { List list = getEmployeeDataList(); Optional min = list.stream().min((e1, e2) -> Double.compare(e1.getSalary(), e2.getSalary())); System.out.println(min); }reduce:可以将流中的元素反复结合起来,得到一个值
求出1到10的总和
public static void main(String[] args) { List list = Arrays.asList(1,2,3,4,5,6,7,8,9,10); Integer reduce = list.stream().reduce(0, Integer::sum); System.out.println(reduce); } reduce的第一个参数0:代表初始值。
计算公司中所有员工的总和
查找工资大于8000的员工,返回一个list或者set
public static void main(String[] args) { List list = getEmployeeDataList(); List collect = list.stream().filter(employee -> employee.getSalary() > 8000).collect(Collectors.toList()); System.out.println(collect); } public static void main(String[] args) { List list = getEmployeeDataList(); Set collect = list.stream().filter(employee -> employee.getSalary() > 8000).collect(Collectors.toSet()); System.out.println(collect); }完结,好了,以上就是全部内容,能坚持看到这里,你一定会有收获,只要反复的练习一定能写出优雅的stream流,后面的文章我们会继续扩展其他的接口实现。
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务