栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java进阶营】Java超好用的工具方法(持续更新ing)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java进阶营】Java超好用的工具方法(持续更新ing)

判断一个值是否为null,若是null的情况下,设置默认值
Integer ab=null;
ab = ab == null ? -1 : ab;
可以使用更加优雅的一种方式:Optional

Optional.ofNullable(ab).orElse(-1);
在封装为一个公共方法:

public static T nullToDefault(T t, T defaultValue) {
return t == null ? defaultValue : t;
}
比较两个值是否相等
难点:在于对于NPE的处理

Integer ab=null;
Integer c=null;
ab!=null && ab.equals©
可以使用:

Integer ab=null;
Integer c=null;
java.util.Objects.equals(ab,c);
但是需要注意:Objects.equals()方法int类型和long类型比较时,会返回false。原因是将其装箱为封装类型。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

如果为null或者空串,则去执行默认值
寻找第一个非空的值

String s1 = “”;
String s2 = “”;
String s3 = “a”;
StringUtils.firstNonEmpty(s1, s2, s3);
计算集合元素的和
方式1:mapToLong().sum()
方式2:map().reduce(Long::sum).orElse(0L)
5. 枚举工具类的使用

public enum TestEnum {
xx(“xx”),
yy(“yy”),
zz(“zz”),
aa(“aa”);

TestEnum(String path) {
}

}
获取一个范围的枚举值:

获取一个范围的枚举值: Lists.newLinkedList(EnumSet.range(TestEnum.xx, TestEnum.zz));

获取一个枚举类的枚举值:Lists.newLinkedList(EnumSet.allOf(TestEnum.class));
对元素分组后进行排序
public static void main(String[] args) {
List users = Lists.newArrayList(new User(1, 1)
, new User(3, 1)
, new User(2, 1)
, new User(4, 2)
, new User(1, 2)
);
Map collect = users.stream()
.collect(Collectors.groupingBy(User::getType)) //分组
.entrySet().stream() //将Map转化成Steam>>
.map(r -> new SimpleEntry<>(r.getKey(), r.getValue().stream().sorted(Comparator.comparing(User::getId)).collect(
Collectors.toList()))) //映射,使用SimpleEntry<>承接
.collect(Collectors.toMap(SimpleEntry::getKey,SimpleEntry::getValue)); //转化为Map
System.out.println(collect);
}

@Data
@AllArgsConstructor
@NoArgsConstructor
private static class User 
  1. 数字工具类

依赖:

org.apache.commons commons-lang3 3.12.0 转化方法:

NumberUtils.toLong(“1000”);
四舍五入的方法:

public class TestNumberUtils {
public static void main(String[] args) {
//相除四舍五入取2位小数
int a = 1;
int b = 3;
BigDecimal bigDecimal = NumberUtils.toScaledBigDecimal((double) a / b, 2, RoundingMode.HALF_UP);
System.out.println(bigDecimal.doubleValue());
}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/852208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号