栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jdk1.8新特性(常见案例解析)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jdk1.8新特性(常见案例解析)

1  从list中快速取出对象的某个属性值

List clientDTOS = entityMapper.clientBorrowersToDTO(list);

List ids = clientDTOS.stream().map(ClientDTO::getClientId).collect(Collectors.toList());

2 按照条件取出数据

List users = sysUserService.listUserByRole(nextRoleName);

users = users.stream().filter(e -> e.getPosition().equals("主管")).collect(Collectors.toList());

3 提取出list对象中的一个属性

List stIdList1 = stuList.stream().map(Person::getId).collect(Collectors.toList());

4 提取出list对象中的一个属性并去重

List stIdList2 = stuList.stream().map(Person::getId).distinct().collect(Collectors.toList());

5 按照某个字段去重得到list对象

ArrayList collect = result.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysDepartment::getId))), ArrayList::new));

6 (根据年级和专业,当年级和专业都相同的情况下看做是重复数据)

List distinctClass = classEntities.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getProfessionId() + ";" + o.getGrade()))), ArrayList::new));

7 通过hashSet去重(如将classNames去重):该种去重是bean完全相同的时候算重复数据

List classNameList = new ArrayList(new HashSet(classNames));

8 获取最小值

roleList.stream().mapToInt(SysRole -> SysRole.getDataPermission()).min().getAsInt();

9 排序 降序输出

List studentsSortName = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge).reversed()).collect(Collectors.toList());

List candidateUserIds = sysUsers.stream().map(SysUser::getId).map(String::valueOf).collect(Collectors.toList());

list.stream().mapToDouble(Student1::getScore).sum()//和

list.stream().mapToDouble(Student1::getScore).max()//最大

list.stream().mapToDouble(Student1::getScore).min()//最小

list.stream().mapToDouble(Student1::getScore).average()//平均值

10 BigDecimal属性求和

BigDecimal reduce = plans.stream().filter(x -> x.getSurplusAmonunt().compareTo(new BigDecimal(0)) != 0).map(RepayPlan::getSurplusAmonunt).reduce(BigDecimal.ZERO, BigDecimal::add);

11 打印

list.stream().filter((s) -> s.startsWith("a")).forEach(System.out::println); //aaa,过滤开始元素为a的字符串。

12 count()操作

long count = list.stream().filter((user) -> user.getName().startsWith("a")).count();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号