前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

Stream

原创
作者头像
大西瓜
发布于 2023-07-18 08:54:40
发布于 2023-07-18 08:54:40
37900
代码可运行
举报
运行总次数:0
代码可运行

Stream常用的一切操作

一种类型转另一种
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<HmsAdviceRecord> records = hmsAdviceRecordService.list(new LambdaQueryWrapper<HmsAdviceRecord>().in(HmsAdviceRecord::getRelationCode, collect));
List<HmsAdviceRecordVo> redList =JSON.parseArray(JSON.toJSONString(records), HmsAdviceRecordVo.class);
根据对象泛型的某一个字段去重
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<HmsPlanDetail> collect =
list.stream().
collect(Collectors.collectingAndThen(Collectors.
toCollection(() -> new TreeSet<>(Comparator.comparing(HmsPlanDetail::getDoctorId))), ArrayList::new));
List转成Map数据(key : value)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<Map<String, Object>> mapList = collect.stream().map((h) -> {
Map<String, Object> map = new HashMap<>();
map.put("id", h.getDoctorId());
map.put("value", h.getDoctorName());
return map;
}).collect(Collectors.toList());
Filter过滤操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
filter(f -> f.getStatus().equals(InpatientStatus.ING))
根据某组特定数据分类分类完成后变Map集合
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<HmsAdviceRecordVo> redList = JSON.parseArray(JSON.toJSONString(records), HmsAdviceRecordVo.class);
Map<String, List<HmsAdviceRecordVo>> listMap = redList.stream().collect(Collectors.groupingBy(HmsAdviceRecordVo::getBed));
遍历替换操作取代传统的if比较
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hmsDrugProjects.stream()
.filter(d -> e.getProjectId().equals(d.getId()))
.findFirst()  
.ifPresent(d -> e.setFormat(d.getFormat()));
});
//方法查找第一个满足条件的元素,并将其封装在Optional对象中。
//最后,如果Optional对象中存在元素,则使用.ifPresent()方法将该元素的格式设置为变量"e"的格式。
Peek中间操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
voList = voList.stream().peek(record -> {
Optional<HmsInpatient> inpatient = list.stream()
.filter(hmsInpatient -> record.getRelationCode().equals(hmsInpatient.getInpatientCode()))
.findFirst();
inpatient.ifPresent(hmsInpatient -> {
record.setName(hmsInpatient.getName());
record.setAge(hmsInpatient.getAge());
record.setBed(hmsInpatient.getBed());
record.setWards(hmsInpatient.getWards());
});
}).collect(Collectors.toList());

voList = voList.stream().peek(e -> {
Optional<HmsAdviceDrug> drug = drugs.stream()
.filter(d -> e.getId().equals(d.getAdviceId()))
.findFirst();
drug.ifPresent(d -> e.setNum(d.getNum()));
}).collect(Collectors.toList());

//这段代码使用了Java 8中的Stream API来对一个列表进行操作。
//首先,它使用了stream()方法将列表转换为一个流,
//然后使用peek()方法对每个元素进行操作,而不改变流中的元素。
//在第一个peek()中,它使用了filter()方法来过滤出与当前元素关联代码相同
//的HmsInpatient对象,然后使用findFirst()方法获取第一个匹配的对象。
//如果找到了匹配的对象,它会使用ifPresent()方法对该对象进行操作,
//将其名称、年龄、床位和病房设置为当前元素的相应属性。
//在第二个peek()中,它使用了类似的方法来过滤出与当前元素ID相同的HmsAdviceDrug对象,
//然后将其数量设置为当前元素的相应属性。最后,它使用collect()方法将流转换回列表并将其赋值给voList变量。
Of操作多个字段判断拼接
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
operationApplyReqs.forEach((e) -> {
e.setGeneralTerm(Stream.of(e.getOperationNameOne(), e.getOperationNameTwo(), e.getOperationNameThree(), e.getOperationNameFour())
.filter(Objects::nonNull)
.collect(Collectors.joining()));
e.setGeneralTermOfParts(Stream.of(e.getPositionOne(), e.getPositionTwo(), e.getPositionThree())
.filter(Objects::nonNull)
.collect(Collectors.joining()));
});

//Stream.of方法将元素的属性转换为一个流,filter方法过滤掉空值,
//Collectors.joining方法将非空值连接成一个字符串。

Calendar日期操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 多态
Calendar calendar = Calendar.getInstance();
calendar.setTime(req.getInHospitalTime());
calendar.add(Calendar.DAY_OF_MONTH, -1);
Date dayDeFore = calendar.getTime();
//前一天日期
String before = df.format(dayDeFore);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Ubuntu20.04安装中文输入法
  新装了ubuntu20.04的系统,由于装系统时,选择安装了英文的版本,因此系统没有中文输入法,此时我想加入中文输入法。
全栈程序员站长
2022/11/09
1.5K0
Ubuntu20.04安装中文输入法
ubuntu 20.04 安装中文输入法_ubuntu20.04安装中文输入法
在安装ubuntu时,如果选择英文安装默认会不启用中文输入法的。可以通过下述方法开启:
全栈程序员站长
2022/11/09
1.8K0
ubuntu 20.04 安装中文输入法_ubuntu20.04安装中文输入法
ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法
在Ubuntu系统中,无论是写文档还是在程序中写注释,都经常需要用到中文输入法。本文简单介绍了三种输入法框架,然后详细介绍了在Ubuntu 20.04系统中,IBus框架和Fcitx框架支持的中文输入法的配置和安装。
全栈程序员站长
2022/11/09
27.2K0
ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法
Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
中文输入法 切换到root用户,运行以下命令: yum install "@Chinese Support" 按照提示,一路Yes等待安装完成。安装完成后点击左上角System -> Preferen
陈树义
2018/04/13
3K0
Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
ubuntu安装中文输入法搜狗_中文输入法怎么调出来
首先,要安装中文输入法,必须要保证系统上有 fcitx。fcitx是一个以 GPL 方式发布的输入法框架,安装 fcitx 后可以为操作系统的桌面环境提供一个灵活的输入方案,解决在 GNU/Linux 环境下安装中文输入法的问题。
全栈程序员站长
2022/11/10
3K0
ubuntu安装中文输入法搜狗_中文输入法怎么调出来
Ubuntu20.04安装输入法_ubuntu20中文输入法
本文安装谷歌输入法。 其实之前一直用的是搜狗输入法,因为20.04取消qt4了没装成,就去尝试别的输入法了。发现谷歌输入法用起来极舒服,比sougou for linux好用多了。记得谷歌的中文输入法主要是北京分部在做,对google cn的好感度飙升!!!
全栈程序员站长
2022/11/09
2K0
Ubuntu20.04安装输入法_ubuntu20中文输入法
ubuntu输入法ibus
IBus 全称 Intelligent Input Bus是下一代输入法框架(或者说“平台”)。 项目现托管于 Google Code - https://code.google.com/p/ibus/ 此项目包含了世界多数语言的文字输入需求——由世界多个国家开发者维护。
阿超
2024/01/02
5090
ubuntu下安装中文输入法_ubuntu下载中文输入法
Ubuntu中安装中文输入法相比Windows上要复杂不少(其实也不算复杂,就是步骤上要稍微多一些)。这篇文章将基于 Ubuntu Desktop 20.04 进行中文输入法安装说明。
全栈程序员站长
2022/11/09
2.8K0
ubuntu下安装中文输入法_ubuntu下载中文输入法
ubuntu16 中文输入法_如何在ubuntu中安装中文输入法
最近刚给笔记本装了Ubuntu+win10双系统,但是ubuntu16.04没有自带中文输入法,所以经过网上的一些经验搜索整合,分享一下安装中文输入法的心得。本文主要介绍了谷歌拼音跟ibus中文输入法的安装,由于ibus输入法问题较多,所以目前我用的是谷歌输入法。
全栈程序员站长
2022/11/09
2.2K0
ubuntu16 中文输入法_如何在ubuntu中安装中文输入法
Kali Linux安装搜狗输入法(只需5步)
请注意,本文编写于 1255 天前,最后修改于 783 天前,其中某些信息可能已经过时。
Xcnte
2021/12/14
11.2K0
Kali Linux安装搜狗输入法(只需5步)
centos7安装后怎么调出中文输入法
首先查看系统上是否安装输入法,在终端输入yum install ibus-libpinyin.
生信real
2020/08/26
4.6K0
centos7安装后怎么调出中文输入法
Ubuntu16.04安装搜狗拼音输入法(中文输入法)「建议收藏」
打开官网http://pinyin.sogou.com/linux,点击自己对应的系统位数安装包,然后下载。
全栈程序员站长
2022/09/20
1.6K0
Ubuntu16.04安装搜狗拼音输入法(中文输入法)「建议收藏」
Ubuntu20.04中文输入法配置
但Ubuntu初始安装后是没有智能拼音输入法的,需要切换以下系统的语言,才能出现智能拼音输入法。
用户9402963
2022/01/20
8.1K0
Linux Ubuntu 20.04 LTS 解决无法输入中文 输入法问题
简单概述一下,Linux输入法可选的有ibus和fcitx等 目前绝大部分Linux输入法都基于fcitx 包括谷歌中文输入法、搜狗输入法、百度输入法等
猫头虎
2024/04/07
2.8K0
Ubuntu16.04安装中文输入法_Ubuntu触摸板驱动
然后打开设置,选择 language,点击添加
全栈程序员站长
2022/11/10
1.1K0
Ubuntu16.04安装中文输入法_Ubuntu触摸板驱动
BT5及FireFox汉化
在学校一直就想放假了装一个BT5。现在总算放假了,昨天下了个BT5r3虚拟机装上了,第一步先汉化。
phith0n
2020/10/15
1.2K0
相关推荐
Ubuntu20.04安装中文输入法
更多 >
目录
  • Stream常用的一切操作
    • 一种类型转另一种
    • 根据对象泛型的某一个字段去重
    • List转成Map数据(key : value)
    • Filter过滤操作
    • 根据某组特定数据分类分类完成后变Map集合
    • 遍历替换操作取代传统的if比较
    • Peek中间操作
    • Of操作多个字段判断拼接
  • Calendar日期操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档