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

这篇具有很好参考价值的文章主要介绍了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 

String s = "a,b,c";
String[] split = s.split(",");
List<String> list = Arrays.asList(split);

7 巧用Redis 做次数限制。

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

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

运行的时候会报错的。文章来源地址https://www.toymoban.com/news/detail-706552.html

到了这里,关于20230904工作心得:集合应该如何优雅判空?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【DIY小记】工作中失误了,应该如何对待?

    今天整理博客时,恰好瞄到CSDN创作活动里,最近在搞这个主题:如何对待工作中的失误?笔者个人觉得,这个话题是非常有意义的,尤其是在现在经济形势不好,人人都担忧失业的情况下,怎么样对待工作的失误,甚至是工作本身,不论是从心态上,还是从策略(抓手)上,

    2024年02月08日
    浏览(41)
  • 工作中如何打造优雅的Git工作流和Commit规范!

    前言 🤓Git大家都非常熟悉了,就不做过多介绍,但是如何用好Git、如何进行合理的分支开发、Merge你是否有一个规范流程呢?💤 不论是一个团队一起开发一个项目,还是自己独立开发一个项目,都少不了要和Git打交道,这些都是作为开发者必须要掌握的。每个团队也许有自

    2024年01月21日
    浏览(47)
  • 遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素

    测试数据 1. 普通for循环 普通for循环,通过索引遍历 2. 增强for循环 增强for循环,数组以及所有Collection集合都可以使用增强for循环遍历。遍历集合的实际原理为获取集合的iterator迭代器对象进行迭代遍历。 3. Iterator迭代器遍历 Collection接口继承自Iterable接口,所有Collection集合都

    2024年02月13日
    浏览(45)
  • Java8 List集合如何指定打印分隔符

    背景 无论是在学习还是日常的应用开发过程中,我们经常会需要使用分隔符将 List 集合打印出来。 如下所示: 执行结果如下: 如果我们想在打印的时候不打印 [] ,然后将分隔符换成 、 顿号,应该怎么操作呢? 其实有两种方法可以实现: 方法一:String.join(推荐) String

    2024年02月10日
    浏览(56)
  • java中如何将一个集合list转成以逗号隔开的字符串

    代码: 运行结果: 参数: delimiter:每个元素要添加的分隔符(通常是逗号) elements:需要添加分隔符的字符串(表示被连接的数组(也可以是集合),或者是要连接的多个字符串)

    2024年02月12日
    浏览(51)
  • 20230829工作心得

    解决:按ctrl,然后点进去看。  idea里看方法的具体细节,和谁在调用这个方法,都可以通过按ctrl,然后单击查看。 解决:可以在空格的位置拼上%20,像这样: //这里date是LocalDateTime格式 date.format(DateTimeFormatter.ofPattern(\\\"yyyy-MM-dd%20HH:mm:ss\\\"))) 解决: Integer.valueOf(\\\"string字符串\\\");

    2024年02月10日
    浏览(37)
  • 实验心得,包括代码复现工作的体会

    实践是检验真理的唯一标准 resnet20,cifar100. Direct training: 和原论文一样的参数 64.45 time step 1, Accuracy = 0.5918 time step 2, Accuracy = 0.6320 time step 4, Accuracy = 0.6446 time step 8, Accuracy = 0.6531 time step 16, Accuracy = 0.6608 time step 32, Accuracy = 0.6631 和原论文69.97相差比较大。 加了部分预处理,参数

    2024年02月14日
    浏览(37)
  • 把list集合转换成另一个list集合的三个方法

    1.把list集合转换成另一个list集合方法1,使用jdk1.8流 ListModelInputNode.ModelColumns modelColumns=standardTableOutPutNode.getData().getColumns().stream().         .map(column-new ModelInputNode.ModelColumns(UUID.randomUUID().toString(),column.getSourceColumn(),column.getType2(),1)).collect(Collectors.toList()); 2.把list集合转换成另

    2024年02月09日
    浏览(50)
  • 20230830工作心得:巧用标记位和For循环遍历

    您可以使用一个 `MapString, Listxxx` 类型的数据结构来根据手机号分组并保存多条线索。然后,可以按照以下方式进行操作: 1. 设置一个标志位,比如一个布尔变量,用于记录是否已经成功推送了第一条线索。 2. 遍历 `Map` 的键集合(即手机号集合)。 3. 对于每个键(手机号)

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包