当前位置: 首页 > news >正文

20230901工作心得:IDEA列操作lambda表达式加强版用法

今天是中小学开学时间,亦是9月的开始,继续努力。

今日收获较大的有四个地方,先说这四点。

1、IDEA列操作

使用场景:需要批量将Excel表格里的数据插入到数据库中,此时需要写大量的insert SQL语句。

比如像这样的,密码麻麻的,可能要插入几百条数据。

一条一条写,要写到天荒地老。所以就需要IDEA里的列操作。

具体操作是:

按住Alt,找到要批量操作的位置,然后鼠标向下拖动。

但是有特殊情况,当上下不一齐的时候,这个方法就会失效。比如,这里,我要修改他们的年龄,但是按Alt然后往下拖动的时候,光标总是错位。

即使你按方向键,->,也会错位。


你可以这样操作:

如果每列开始位置不一样,先从整齐的那一列开始,按alt往下拖,然后ctrl + shift +左/右箭头或ctrl + w。跳到目标位置,然后按右键盘,停在那里,然后再ctrl + shift +左/右箭头,选择某个模块的信息,修改。

然后ctrl + shift +左/右箭头或ctrl + w,跳到目标位置

然后再ctrl + shift +左/右箭头,选择某个模块的信息,修改。

2、Lambda表达式加强版用法

以xx为分组,对象作为list。

Map<String, List<User>> something = list.stream().collect(Collectors.groupingBy(User::getName));

还可以xx为分组,然后进一步抽取具体的某个属性为list。

//这里是假代码,仅作示意

Map<String, List<name>> groupingByNameAge= list.stream().collect(Collectors.groupingBy(People::getName,Collectors.mapping(People::getFriends,Collectors.toList())));

这里之所以不用tomap,是因为:

使用Collectors.groupingBy方法可以处理多对一的分组情况,即可以将多个具有相同键的元素放在一个列表中。而使用Map方法只能处理一对一的映射关系,相同的键会覆盖之前的值。

3、标志位 没有返回

某天我写过巧用标志位,做标记,20230830工作心得:巧用标记位和For循环遍历但是在那里,我没有返回标志位,导致这个标志位没有更新,没有传递,相当于白写。

for (String phone : xxxGroupByPhone.keySet()) {Boolean isTransmitted = false;List<UserClue> phoneClue = xxxGroupByPhone.get(phone);for (UserClue userClue : phoneClue) {isTransmitted =  pushClueItem(userClue,isTransmitted);}
}
private Boolean pushClue(UserClue userClue,Boolean isTransmitted
) {if(xx){return true;};if(xx){return false;}
}

执行顺序:

4、善用Optional避免空指针

Optional<Order> optional = OrderRepository.findFirstByOrderNo(orderNo);
        return optional.map(this::decryOrder).orElse(null);
查询订单号为 orderNo 的第一个订单,并掉用this::decryOrder方法,将其加密后返回。如果没有找到匹配的订单,则返回 null。

http://www.lryc.cn/news/155956.html

相关文章:

  • macOS Sonoma 14beta 7(23A5337a)更新发布,附黑/白苹果系统镜像
  • QT基础教程之九Qt文件系统
  • OpenCV(十八):图像直方图
  • mac pro 查看隐藏文件夹
  • 软件测试/测试开发丨Selenium 高级定位 Xpath
  • 各类注意力机制Attention——可变形注意力
  • 桥接模式:连接抽象与实现
  • 同步推送?苹果计划本月推出 iOS17和iPadOS17,你的手机支持吗?
  • 方案展示 | RK3588开发板Linux双摄同显方案
  • 数据库-多表设计
  • 一个简单的文件系统(MinixFS)实现解析
  • 地图投影-2亚当斯方形
  • atcoder库中类欧(类欧几里得算法)floor_sum用法
  • 后端面试话术集锦第 十一 篇:mybatis面试话术
  • SpringBoot运维实用篇、打包、运行、高级配置、多环境开发、日志
  • springdoc-openapi-ui 整合 knife,多模块分组,脚手架
  • 04-MySQL02
  • 实现跨境电商测评和采退、LU卡、LU货最安全的系统方案
  • 软件生命周期及流程
  • nginx使用详解
  • YOLOV7 添加 CBAM 注意力机制
  • 【SpringSecurity】七、SpringSecurity集成thymeleaf
  • Go语言中的数组、切片和映射解析
  • MySql学习笔记03——DQL(数据查询)基本命令
  • 操作系统的四大特性
  • 旅游攻略APP外包开发功能
  • Apollo在Java中的使用
  • Elasticsearch 全文搜索引擎 ---- IK分词器
  • Layer 2盛夏已至,StarkNet如何实现价值跃迁?
  • KaiwuDB 受邀亮相 2023 中国国际“软博会”