commons-long各种工具包xxxUtils-ArrayUtils数组工具类

commons-long各种工具包xxxUtils-ArrayUtils数组工具类


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) 

把指定数组转化为字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值