Collectors.toMap的对null友好实现
发表于|更新于
|浏览量:
令她反感的,远不是世界的丑陋,而是这个世界所戴的漂亮面具。——《不能承受的生命之轻》
我们在使用toMap时如果遇到null元素,经常会导致我们发生npe
很不方便
于是我给hutool提交了一个PR
完美解决了这个问题
使用方式:
升级到hutool-5.7.20
然后使用CollectorUtil
1 | Map<String, Integer> collect = Arrays.asList("ruben", "a chao", "vampire", "RUBEN", "VAMPIRE", null).stream().collect(CollectorUtil.toMap(Function.identity(), String::length, (l, r) -> l)); |
即可
相关推荐
2020-08-21
Bigdecimal
转载,原文 一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。 二、构造器描述BigDecimal(int) 创建一个具有参数所指定整数值的对象。BigDecimal(double) 创建一个具有参数所指定双精度值的对象。BigDecimal(long) 创建一个具有参数所指定长整数值的对象。BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。 三、方法描述add(BigDecimal) BigDec...
2024-05-16
MilvusPlus
得意淡然,失意泰然。——弘一大师 MilvusPlus: 🔥🔥🔥使用MyBatisPlus的方式,优雅的操作向量数据库 Milvus MilvusPlus 是一个功能强大的 Java 库,旨在简化与 Milvus 向量数据库的交互,为开发者提供类似 MyBatis-Plus 注解和方法调用风格的直观 API。 目录 特性 快速开始 应用场景 [自定义注解特性 注解式配置:采用与 MyBatis-Plus 类似的注解方式配置实体模型。 直观的 API:直接的 API 设计简化数据库操作。 易于扩展:核心设计注重可扩展性。 类型安全:利用 Java 类型安全减少错误。 快速开始自定义扩展支持: 12345<dependency> <groupId>io.github.javpower</groupId> <artifactId>milvus-plus-core</artifactId> <version>2.4.0-SNAPSHOT</version></dep...
2022-07-23
stream拓展
开成花灾的玫瑰不是灿烂,而是荒凉。——严歌苓 源码地址:https://gitee.com/VampireAchao/stream-query/blob/master/stream-core/src/main/java/io/github/vampireachao/stream/core/stream/Steam.java 测试用例: https://gitee.com/VampireAchao/stream-query/blob/master/stream-core/src/test/java/io/github/vampireachao/stream/core/stream/SteamTest.java 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798...
2021-01-04
html转word或pdf
差以毫厘,谬以千里。——班固《汉书》 使用的组件还是Spire.Doc,可以看我这篇博客 如果我们遇到html,需要直接渲染到word或者pdf上,可以使用官方文档给的例子 123456789101112131415161718192021222324252627282930import com.spire.doc.*;import java.io.*;public class htmlStringToWord { public static void main(String[] args) throws Exception { String inputHtml = "InputHtml.txt"; //新建Document对象 Document document = new Document(); //添加section Section sec = document.addSection(); String htmlText = readText...
2021-12-25
SimpleQuery优化
做老实人,说老实话,干老实事,就是实事求是。——邓小平 今天又给Mybatis-Plus贡献了代码 https://gitee.com/baomidou/mybatis-plus/pulls/198 优化SimpleQuery,处理了值为空的情况: 之前的情况: 假设数据库中表数据: id name 1 ruben 2 null 我们构建一个Enitity(向miemie大佬致敬) 123456789101112131415161718package com.baomidou.mybatisplus.test.rewrite;import lombok.Data;import java.io.Serializable;/** * @author miemie * @since 2020-06-23 */@Datapublic class Entity implements Serializable { private static final long serialVersionUID = 6962439201546719734L; ...
2025-02-09
tis
你生而有翼,为何竟愿一生匍匐前进,形如虫蚁。——贾拉尔·阿德丁·鲁米 https://tis.pub/https://github.com/datavane/tis 最近在处理数据集成任务时,发现了一个非常实用的工具 TIS。它是一款面向大数据领域的数据集成产品,结合了多个优秀组件(如 FlinkX-CDC、Chunjun、DataX 和 Flink),为企业提供一站式、开箱即用的 DataOps 数据中台,显著提高了实时 ETL(Extract-Transform-Load)和数仓构建的效率。 在传统的 ETL 任务中,如果你是通过手动编写 DataX、Flink-CDC 或 SeaTunnel 的脚本来驱动数据同步,这不仅复杂,而且很容易出错。每次调试和修改配置都可能导致大量重复工作,让人疲惫不堪。而 TIS 的出现,让这些问题迎刃而解。它提供了可视化的操作界面,通过简单的配置就能实现端到端的数据同步,大幅降低了实施的门槛。 TIS 的安装过程非常简单,不需要复杂的配置。只需三步:第一步,下载 tar 包;第二步,解压 tar 包;第三步,启动 TIS。 如果你更偏好容器...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog