作者:微信小助手
发布时间:2024-01-04T08:51:27
前言 在java的庞大体系中,其实有很多不错的小工具,也就是我们平常说的: 如果在我们的日常工作当中,能够将这些轮子用户,再配合一下idea的快捷键,可以极大得提升我们的开发效率。 今天我决定把一些压箱底的小工具,分享给大家,希望对你有所帮助。 1. Collections 首先出场的是 1.1 排序 在工作中经常有对集合排序的需求。 看看使用 执行结果: 1.2 获取最大或最小值 有时候需要找出集合中的 执行结果: 1.3 转换线程安全集合 我们都知道,java中的很多集合,比如:ArrayList、LinkedList、HashMap、HashSet等,都是线程不安全的。 换句话说,这些集合在多线程的环境中,添加数据会出现异常。 这时,可以用Collections的 它的底层会创建 1.4 返回空集合 有时,我们在判空之后,需要返回空集合,就可以使用 1.5 二分查找 执行结果: 1.6 转换成不可修改集合 为了防止后续的程序把某个集合的结果修改了,有时候我们需要把某个集合定义成不可修改的,使用Collections的 执行结果: 当然Collections工具类中还有很多常用的方法,在这里就不一一介绍了,需要你自己去探索。 2. CollectionUtils 对集合操作,除了前面说的 目前比较主流的�
轮子
。
java.util
包下的Collections
类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。
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);[1, 2, 3]
[3, 2, 1]
最大值
或者最小值
,这时可以使用Collections的max
和min
方法。例如: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
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
加锁。
emptyList
方法,例如:private List<Integer> fun(List<Integer> list) {
if (list == null || list.size() == 0) {
return Collections.emptyList();
}
//业务处理
return list;
}
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
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
工具类之后,CollectionUtils
工具类也非常常用。