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

20230904工作心得:集合应该如何优雅判空?

1 集合判空

        List<String> newlist = null;//空指针if( !newlist.isEmpty()){newlist.forEach(System.out::println);}//空指针if(newlist.size()>0 && newlist!=null){newlist.forEach(System.out::println);}//可行if(newlist!=null && newlist.size()>0){newlist.forEach(System.out::println);}//可行 if(CollectionUtils.isEmpty(newlist)){System.out.println("newlist为空");}

其中CollectionUtils是springframework里的方法.

2  Hibernate  findAllByXX ?

3  list 转 map 出错。

        //出错。brandList有值,但是无法传递给groupMap Map<String, String> groupMap = new HashMap<>();if(!brandList.isEmpty()){groupMap = brandList.stream().collect(Collectors.toMap(Brand::getBrand,Brand::getCastBrand));}//最后用了这个方法Map<String, String> groupMap = new HashMap<>();if(!CollectionUtils.isEmpty(groupMap)){groupMap.putAll(brandList.stream().collect(Collectors.toMap(Brand::getBrand,Brand::getCastBrand)));}

4 list的lambda操作

1对多映射:根据手机号分组,拿手机号对应的一批数据

Map<String, List<String>> groupMap = brandList
.stream()
.collect(Collectors.groupingBy(Brand::getBrand,Collectors.mapping(Brand::getCastBrand,Collectors.toList())));


1对1映射:相当于把一个集合数据,从中抽离出两列key-value

 Map<String, String> groupMap = brandList.stream()
.collect(Collectors.toMap(Brand::getBrand,Brand::getCastBrand),(k1,k2)->k1));

这里有个潜在的问题,如果产生了重复的key,会报错。所以需要加后面的(k1,k2)->k1),这个表示如果有冲突,用旧的值。

优雅:

对集合过滤之后,然后针对里面每个元素操作,如果每个元素里有个string,你还可以切割,然后往map里存。

5 map里getOrDefault(key,default).有效防止空指针

6 string 切完之后 是数组。然后再 arrays.aslist 变成 list 

7 巧用redis 做次数限制。

这个还挺实用的,比如对解密次数的限制,对个数的限制等等。

8 数据库里别用limit作为字段名,limit是关键字啊哥哥。

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

相关文章:

  • 使用Python进行健身手表数据分析
  • 什么是malloxx勒索病毒,服务器中malloxx勒索病毒了怎么办?
  • CocosCreator3.8研究笔记(六)CocosCreator 脚本装饰器的理解
  • docker login harbor http login登录
  • day5 qt
  • 【80天学习完《深入理解计算机系统》】第十三天 3.7 缓冲区溢出 attack lab
  • Hadoop生态之hive
  • AWS DynamoDB浅析
  • Linux安装ffmpeg
  • (18)不重启服务动态停止、启动RabbitMQ消费者
  • 数据仓库的流程
  • MyBatis-Plus深入 —— 条件构造器与插件管理
  • C语言结构体的初始化方式
  • Vue生成多文件pdf准考证
  • Rust的derive思考
  • Python常用模块
  • Java“牵手”京东商品评论数据接口方法,京东商品评论接口,京东商品评价接口,行业数据监测,京东API实现批量商品评论内容数据抓取示例
  • 算法leetcode|75. 颜色分类(rust重拳出击)
  • 网络安全(黑客)自学笔记学习路线
  • NoSQL:非关系型数据库分类
  • 【Eclipse】Project interpreter not specified 新建项目时,错误提示,已解决
  • OPENCV实现图像查找
  • vue仿企微文档给页面加水印(水印内容可自定义,超简单)
  • “金融级”数字底座:从时代的“源启”,到“源启”的时代
  • zabbix自动发现linux系统挂载的nas盘,并实现读写故障的监控告警
  • 无涯教程-JavaScript - DAYS函数
  • 48、springboot 的国际化之让用户在程序界面上弄个下拉框,进行动态选择语言
  • FPGA可重配置原理及实现(1)——导论
  • Ubuntu系统下使用宝塔面板实现一键搭建Z-Blog个人博客的方法和流程
  • 数据结构 | 第一章 绪论