「Java工具類」Apache的ArrayUtils和CollectionUtils工具類
介紹語
本號主要是Java常用關鍵技術點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術分享;datax、kafka、flink等大數據處理框架的技術分享。文章會不斷更新,歡迎碼友關注點贊收藏轉發!
望各位碼友點擊關注,沖1000粉。后面會錄制一些視頻教程,圖文和視頻結合,比如:圖書介紹網站系統、搶購系統、大數據中臺系統等。技術才是程序猿的最愛,碼友們沖啊
如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉發收藏,以備不時之需。
正文:
Apache的ArrayUtils數組工具類和CollectionUtils集合工具類,兩個工具類使用的相對比較少,和StringUtils字符串工具類就顯得更少了。
-
ArrayUtils 數組工具類,使用的頻率比較少,了解即可;
-
CollectionUtils 集合工具類,使用的頻率比較少,了解即可;集合工具類在spring中也有。
ArrayUtils使用例子
import org.apache.commons.lang3.ArrayUtils;
?
import java.util.Map;
?
public class ArrayUtilsTest {
?
public static void main(String[] args) {
String[] array = {"Hello", "BCD", "Java"};
String[] newArray = ArrayUtils.add(array, "ABc");
System.out.println(ArrayUtils.toString(newArray));
// newArray = {Hello,BCD,Java,ABc}
ArrayUtils.reverse(newArray);
// newArray = {ABc,Java,BCD,Hello}
System.out.println(ArrayUtils.indexOf(newArray, "BCD"));
// 2
newArray = ArrayUtils.insert(2, newArray, "ABc");
// newArray = {ABc,Java,ABc,BCD,Hello}
System.out.println(ArrayUtils.lastIndexOf(newArray, "ABc"));
// 2
String[] subarray = ArrayUtils.subarray(newArray, 1, 3);
// subarray = {Java,ABc}
?
System.out.println(ArrayUtils.isSorted(newArray));
// false
System.out.println(ArrayUtils.isSameLength(array, newArray));
// false
System.out.println(ArrayUtils.isSameType(array, newArray));
// true
?
String[] remove = ArrayUtils.remove(newArray, 2);
// {ABc,Java,BCD,Hello}
remove = ArrayUtils.removeElement(remove, "BCD");
// {ABc,Java,Hello}
remove = ArrayUtils.removeElements(remove, "ABc");
// {Java,Hello}
?
Object[] ints = {2, 1, 5, 8, 4, 6, 9};
String[] stringArray = ArrayUtils.toStringArray(ints);
System.out.println(ArrayUtils.toString(stringArray));
// stringArray = {2,1,5,8,4,6,9}
?
String[][] ss = {{"name", "zhang"},{"age", "12"}};
Map<Object, Object> m = ArrayUtils.toMap(ss);
// m = {name=zhang, age=12}
}
}
CollectionUtils使用例子
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
?
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
?
public class CollectionUtilsTest {
?
public static void main(String[] args) {
List<String> listA = new ArrayList<>();
System.out.println(CollectionUtils.isEmpty(listA));
// true
System.out.println(CollectionUtils.isNotEmpty(listA));
// false
?
listA.add("aa");
List<String> listB = new ArrayList<>();
CollectionUtils.addIgnoreNull(listB, null);
System.out.println(ArrayUtils.toString(listB));
// []
?
CollectionUtils.addIgnoreNull(listB, "bb");
CollectionUtils.addAll(listB, listA);
System.out.println(ArrayUtils.toString(listB));
// [bb, aa]
?
// 差集,在B中找出A沒有的元素
Collection<String> subtract1 = CollectionUtils.subtract(listB, listA);
System.out.println(ArrayUtils.toString(subtract1));
// [bb]
?
// 差集,在A中找出B沒有的元素
Collection<String> subtract2 = CollectionUtils.subtract(listA, listB);
System.out.println(ArrayUtils.toString(subtract2));
// []
?
// 并集,合并A、B的元素,去掉重復的元素
Collection<String> union = CollectionUtils.union(listA, listB);
System.out.println(ArrayUtils.toString(union));
// [aa, bb]
?
// 交集,找出A、B的共同的元素
Collection<String> intersection = CollectionUtils.intersection(listA, listB);
System.out.println(ArrayUtils.toString(intersection));
// [aa]
?
// 移除B中有的A元素
Collection<String> c1 = CollectionUtils.removeAll(listB, listA);
System.out.println(ArrayUtils.toString(c1));
// [bb]
?
// 計算集合中元素出現的次數
CollectionUtils.addIgnoreNull(listB, "bb");
Map<String, Integer> m = CollectionUtils.getCardinalityMap(listB);
System.out.println(m);
// {bb=2, aa=1}
}
}
工具類源碼:
直接引入工具類的jar包即可
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
類似工具類org.springframework.util.CollectionUtils,這個工具類用的可能還多點,不過還是要看項目的情況。建議可以看下這個工具類。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.6</version>
</dependency>
字符串處理工具類,數組集合工具類,這些經典的工具類其實在很多常見的框架中都有的,同學們要善于發現。
鄙人編碼十年多,在項目中也積累了一些工具類,很多工具類在每個項目都有在用,很實用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經不記得是ctrl+c的還是自己封裝的了,現在有空就會總結項目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權行為請通知鄙人處理。
計劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項目中不管是普通單體項目還是多模塊maven項目或是分布式微服務,一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

浙公網安備 33010602011771號