别再自己瞎写工具类了,SpringBoot内置工具类应有尽有,建议收藏!!

作者:微信小助手

发布时间:2024-01-04T08:51:27


前言


在java的庞大体系中,其实有很多不错的小工具,也就是我们平常说的:轮子

如果在我们的日常工作当中,能够将这些轮子用户,再配合一下idea的快捷键,可以极大得提升我们的开发效率。

今天我决定把一些压箱底的小工具,分享给大家,希望对你有所帮助。


1. Collections





首先出场的是java.util包下的Collections类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。


1.1 排序


在工作中经常有对集合排序的需求。

看看使用Collections工具是如何实现升序和降序的:

  List<Integer> list = new ArrayList<>();
  list.add(2);
  list.add(1);
  list.add(3);
  Collections.sort(list);//升序
  System.out.println(list);
  Collections.reverse(list);//降序
  System.out.println(list);

执行结果:

[123]
[321]


1.2 获取最大或最小值


有时候需要找出集合中的最大值或者最小值,这时可以使用Collections的maxmin方法。例如:

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
Integer max = Collections.max(list);//获取最大值
Integer min = Collections.min(list);//获取最小值
System.out.println(max);
System.out.println(min);

执行结果:

3
1


1.3 转换线程安全集合


我们都知道,java中的很多集合,比如:ArrayList、LinkedList、HashMap、HashSet等,都是线程不安全的。

换句话说,这些集合在多线程的环境中,添加数据会出现异常。

这时,可以用Collections的synchronizedxxx方法,将这些线程不安全的集合,直接转换成线程安全集合。例如:

  List<Integer> list = new ArrayList<>();
  list.add(2);
  list.add(1);
  list.add(3);

  List<Integer> integers = Collections.synchronizedList(list);//将ArrayList转换成线程安全集合
  System.out.println(integers);

它的底层会创建SynchronizedRandomAccessList或者SynchronizedList类,这两个类的很多方法都会用synchronized加锁。


1.4 返回空集合


有时,我们在判空之后,需要返回空集合,就可以使用emptyList方法,例如:

private List<Integer> fun(List<Integer> list) {
    if (list == null || list.size() == 0) {
        return Collections.emptyList();
    }
    //业务处理
    return list;
}


1.5 二分查找


binarySearch方法提供了一个非常好用的二分查找功能,只用传入指定集合和需要找到的key即可。例如:

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);

int i = Collections.binarySearch(list, 3);//二分查找
System.out.println(i );

执行结果:

2


1.6 转换成不可修改集合


为了防止后续的程序把某个集合的结果修改了,有时候我们需要把某个集合定义成不可修改的,使用Collections的unmodifiablexxx方法就能轻松实现:

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);

List<Integer> integers = Collections.unmodifiableList(list);
integers.add(4);
System.out.println(integers);

执行结果:

Exception in thread "main" java.lang.UnsupportedOperationException
 at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
 at com.sue.jump.service.test1.UtilTest.main(UtilTest.java:19)

当然Collections工具类中还有很多常用的方法,在这里就不一一介绍了,需要你自己去探索。


2. CollectionUtils





对集合操作,除了前面说的Collections工具类之后,CollectionUtils工具类也非常常用。

目前比较主流的�