commons-long各种工具包xxxUtils-ArrayUtils数组工具类
文章目录
- commons-long各种工具包xxxUtils-ArrayUtils数组工具类
- 1.以boolean数组为例,直接给指定数组的指定位置新增一个数据
- 2.直接将两个数组合并,或者将几个数据加到第一个数组上
- 3.给数组第一个元素加数据
- 4.返回列表的克隆
- 5.contains,数组是否包含某个数据
- 6.获取数组大小,尽量不用
- 7.indexOf,获取指定下标数据
- 8.isEquals,判断两个数组是否相等
- 9.isNotEmpty,与isEmpty相反,判断数组是否不为空
- 10.isSameLength,判断两个数组长度是否相等
- 11.isSameType,判断两个数组类型是否相同
- 12.isSorted,判断两个数组类型是否相同
- 13.lastIndexOf,和indexOf相同,从尾到头找
- 14.nullToEmpty,如果数组为空自动转化为长度为0的数组
- 15.remove,帮助数组移除指定下标的数据
- 16.removeAll
- 17.removeAllOccurrences
- 18.removeElement
- 19.reverse
- 20.shift
- 21.subarray
- 22.toObject
- 23.toPrimitive
- 24.toString
1.以boolean数组为例,直接给指定数组的指定位置新增一个数据
方法:
public static boolean[] add(boolean[] array, int index, boolean element)
举例:
int a[] = new int[10];
ArrayUtils.add(a,1,10);
2.直接将两个数组合并,或者将几个数据加到第一个数组上
方法:
public static <T> T[] addAll(T[] array1, T... array2)
举例:
int a[] = new int[10];
int b[] = new int[10];
ArrayUtils.addAll(a,b);
3.给数组第一个元素加数据
方法:
public static <T> T[] addFirst(T[] array, T element)
举例:
int a[] = new int[10];
ArrayUtils.addFirst(a,1);
4.返回列表的克隆
方法:
public static <T> T[] clone(T[] array)
举例:
int a[] = new int[10];
int[] cloneObj = ArrayUtils.clone(a);
其实cloneObj相当于新建一个数组并且重新给cloneObj赋a数组的值
5.contains,数组是否包含某个数据
方法:
public static boolean contains(Object[] array, Object objectToFind)
举例:
int a[] = new int[10];
a[0] = 1;
a[1] = 2;
ArrayUtils.contains(a,2);
6.获取数组大小,尽量不用
方法:
public static <T> T get(T[] array, int index)
举例:
int a[] = new int[10];
ArrayUtils.getLength(a);
7.indexOf,获取指定下标数据
方法:
public static BitSet indexesOf(boolean[] array, boolean valueToFind, int startIndex)
举例:
int a[] = new int[10];
ArrayUtils.indexesOf(a,1,2);
第一个参数是数组,第二个参数是需要查找的值,第三个参数是起始查找的位置(可以缺省的参数,缺省自动为0,也就是从开头查找)
8.isEquals,判断两个数组是否相等
方法:
public static boolean isEquals(Object array1, Object array2)
举例:
int a[] = new int[10];
int b[] = new int[10];
ArrayUtils.isEquals(a,b);
9.isNotEmpty,与isEmpty相反,判断数组是否不为空
方法:
public static <T> boolean isNotEmpty(T[] array)
10.isSameLength,判断两个数组长度是否相等
方法:
public static boolean isSameLength(short[] array1, short[] array2)
11.isSameType,判断两个数组类型是否相同
方法:
public static boolean isSameType(Object array1, Object array2)
12.isSorted,判断两个数组类型是否相同
方法:
public static boolean isSorted(int[] array)
只能判断数组是否正序
13.lastIndexOf,和indexOf相同,从尾到头找
方法:
public static int lastIndexOf(boolean[] array, boolean valueToFind, int startIndex)
其中startIndex代表的是尾指针
14.nullToEmpty,如果数组为空自动转化为长度为0的数组
方法:
public static <T> T[] nullToEmpty(T[] array, Class<T[]> type)
public static String[] nullToEmpty(String[] array)
第一个给空泛型数组返回一个指定类型的长度为0的数组,第二个是有确定类型的数组则直接返回对应类型的长度为0的数组
15.remove,帮助数组移除指定下标的数据
方法:
public static <T> T[] remove(T[] array, int index)
index代表指定下标
16.removeAll
方法:
public static Object removeAll(Object array, int... indices)
移除指定数组指定下标数据,不传第二个参数移除所有
17.removeAllOccurrences
方法:
public static <T> T[] removeAllOccurrences(T[] array, T element)
移除指定数据出现之前的所有数据
18.removeElement
方法:
public static <T> T[] removeElement(T[] array, Object element)
按值移除
19.reverse
方法:
public static void reverse(Object[] array)
把数组倒序
20.shift
方法:
public static void shift(boolean[] array, int startIndexInclusive, int endIndexExclusive, int offset)
打乱数组,具体实现:
public static void shuffle(short[] array, Random random) {
for(int i = array.length; i > 1; --i) {
swap((short[])array, i - 1, random.nextInt(i), 1);
}
}
public static void swap(short[] array, int offset1, int offset2, int len) {
if (!isEmpty(array) && offset1 < array.length && offset2 < array.length) {
if (offset1 < 0) {
offset1 = 0;
}
if (offset2 < 0) {
offset2 = 0;
}
if (offset1 != offset2) {
len = Math.min(Math.min(len, array.length - offset1), array.length - offset2);
for(int i = 0; i < len; ++offset2) {
short aux = array[offset1];
array[offset1] = array[offset2];
array[offset2] = aux;
++i;
++offset1;
}
}
}
}
21.subarray
方法:
public static int[] subarray(int[] array, int startIndexInclusive, int endIndexExclusive)
取指定起始位置的子数组
22.toObject
方法:
public static Short[] toObject(short[] array)
给不同的类型加封装
23.toPrimitive
方法:
public static boolean[] toPrimitive(Boolean[] array)
给不同的封装类解封装
24.toString
方法:
public static String toString(Object array, String stringIfNull)
把指定数组转化为字符串