apache ArrayUtils 工具類


 

org.apache.commons.lang3.ArrayUtils

 

// 1.add():將給定的數據添加到指定的數組中,返回一個新的數組。
int[] arr = { 1, 2, 3 };
int[] newArr = ArrayUtils.add(arr, 4); // new新數組長度比舊數組大1,copy舊數組到新數組,把元素賦值到最后一位
System.out.println(ArrayUtils.toString(newArr)); // {1,2,3,4}

// 2.addAll():合並兩個數組。
int[] arr2 = { 4, 5, 6 };
int[] newArr = ArrayUtils.addAll(arr, arr2);
System.out.println(ArrayUtils.toString(newArr)); // {1,2,3,4,5,6}

int[] clone = ArrayUtils.clone(arr); // 調用arr.clone()
System.out.println(ArrayUtils.toString(clone)); // {1,2,3}

// 3.contains():檢查該數據在該數組中是否存在,返回一個boolean值。
boolean contains = ArrayUtils.contains(arr, 2); // 遍歷判斷相等
System.out.println(contains); // true

// 4.getLength():返回該數組長度。
int length = ArrayUtils.getLength(arr); // 調用Array.getLength(arr)
System.out.println(length); // 3

// 5.indexOf():從數組的第一位開始查詢該數組中是否有指定的數值,存在返回index的數值,否則返回-1。
int indexOf = ArrayUtils.indexOf(arr, 2); // 遍歷判斷相等
System.out.println(indexOf); // 1

// 6.lastIndexOf():從數組的最后一位開始往前查詢該數組中是否有指定的數值,存在返回index的數值,否則返回-1。
int lastIndexOf = ArrayUtils.lastIndexOf(arr, 2); // 遍歷判斷相等
System.out.println(indexOf); // 1

// 7.Insert():向指定的位置往該數組添加指定的元素,返回一個新的數組。
int[] newArr = ArrayUtils.insert(2, arr, arr2); // new新數組長度是源數組和目標數組的長度和,再把源數組和目標數組arraycopy到新數組
System.out.println(ArrayUtils.toString(newArr)); // {1,2,4,5,6,3}

// 擴展 System.arraycopy()方法
// public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
// 其中:src表示源數組,srcPos表示源數組要復制的起始位置,desc表示目標數組,length表示要復制的長度。
// 參考:https://blog.csdn.net/qq_32440951/article/details/78357325

// 8.isEmpty():判斷該數組是否為空,返回一個boolean值。
boolean isEmpty = ArrayUtils.isEmpty(arr); // 調用getLength(array) == 0;
System.out.println(isEmpty); // false

int[] arr3 = { 1, 2, 3 };
boolean isEquals = ArrayUtils.isEquals(arr, arr3); // 不推薦使用,建議使用Arrays.equals(arr, arr3)
System.out.println(isEquals); // true
boolean equals = Arrays.equals(arr, arr3);
System.out.println(equals); // true

// 9.isNotEmpty():判斷該數組是否為空,而不是null。
boolean isNotEmpty = ArrayUtils.isNotEmpty(arr);
System.out.println(isNotEmpty); // false

// 10.isSameLength():判斷兩個數組的長度是否一樣,當數組為空視長度為0。返回一個boolean值。
boolean isSameLength = ArrayUtils.isSameLength(arr, arr3); // 調用getLength(arr) == getLength(arr3)
System.out.println(isSameLength); // true

// 11.isSameType():判斷兩個數組的類型是否一樣,返回一個boolean值。
boolean isSameType = ArrayUtils.isSameType(arr, arr3); // 調用array1.getClass().getName().equals(array2.getClass().getName())
System.out.println(isSameType); // true

// 12.isSorted():判斷該數組是否按照自然排列順序排序,返回一個boolean值。
boolean isSorted = ArrayUtils.isSorted(arr); // 使用Comparator實現
System.out.println(isSorted); // true

// 13.nullToEmpty():
int[] nullArr = null;
int[] nullToEmpty = ArrayUtils.nullToEmpty(nullArr); // 如果arr為null,返回new int[0]
System.out.println(ArrayUtils.toString(nullToEmpty)); // {}

// 14.remove():刪除該數組指定位置上的元素,返回一個新的數組。
int[] newArr = ArrayUtils.remove(arr, 0);
System.out.println(ArrayUtils.toString(newArr)); // {2,3}

// 15.removeAll():刪除指定位置上的元素,返回一個新的數組。
int[] newArr = ArrayUtils.removeAll(arr, 0, 1);
System.out.println(ArrayUtils.toString(newArr)); // {3}

// 16.removeAllOccurences():從該數組中刪除指定的元素,返回一個新的數組。
int[] newArr = ArrayUtils.removeAllOccurences(arr, 2); // 遍歷使用indexOf()找出所有指定元素,在執行removeAll()
System.out.println(ArrayUtils.toString(newArr)); // {1,3}

// 17.removeElement():從該數組中刪除第一次出現的指定元素,返回一個新的數組。
int[] newArr = ArrayUtils.removeElement(arr, 2); // 使用indexOf()找出第一次出現的指定元素,在執行remove()
System.out.println(ArrayUtils.toString(newArr)); // {1,3}

// 18.removeElements():從該數組中刪除指定數量的元素,返回一個新的數組。
int[] newArr = ArrayUtils.removeElements(arr, 1, 2);
System.out.println(ArrayUtils.toString(newArr)); // {3}

// 19.reverse():數組反轉。也可以指定開始和結束的反轉位置。
ArrayUtils.reverse(arr); //  首尾對稱交換
System.out.println(ArrayUtils.toString(arr)); // {3,2,1}

// 移位
ArrayUtils.shift(arr, 2);
System.out.println(ArrayUtils.toString(arr)); // {3,2,1}

// 打亂
ArrayUtils.shuffle(arr);
System.out.println(ArrayUtils.toString(arr));

// 20.subarray():截取數組(包頭不包尾),返回一個新的數組
int[] subarray = ArrayUtils.subarray(arr, 0, 2);
System.out.println(ArrayUtils.toString(subarray)); // {1,2}

// 21.swap():指定該數組的兩個位置的元素交換或者指定兩個位置后加len的長度元素進行交換。
ArrayUtils.swap(arr, 0, 1);
System.out.println(ArrayUtils.toString(arr)); // {2,1,3}

// 22.toMap():將數組轉換成Map,返回一個map的Object的集合。
String[][] strArr = { { "RED", "#FF0000" }, { "GREEN", "#00FF00" }, { "BLUE", "#0000FF" } };
Map colorMap = ArrayUtils.toMap(strArr);
System.out.println(colorMap);

// 23.toObject():將原始數據類型的數組轉換成包裝類數組。
ArrayUtils.toObject(arr); // 遍歷轉換
System.out.println(ArrayUtils.toString(arr)); // Integer類型

// 24.toPrimitive():將包裝類數組轉換成原始數據類型數組。
ArrayUtils.toPrimitive(arr);
System.out.println(ArrayUtils.toString(arr)); // int類型

// 25.toString():將數組輸出為Stirng,返回一個字符串。
String str = ArrayUtils.toString(arr);
System.out.println(ArrayUtils.toString(str));

// 26.toStringArray():將Object數組轉換為String數組類型。
String[] strArr2 = ArrayUtils.toStringArray(new Object[]{ "1", "2" });
System.out.println(ArrayUtils.toString(strArr2)); // {1,2}

 

官方文檔:https://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html

參考文檔:https://blog.csdn.net/evilcry2012/article/details/77987348


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM