Arrays工具类五个常用方法的使用的使用(对于数组而言)

 

1. boolean equals(int a[],int b[]) //判断两个数组是否相等

int arr1[]=new int[]{1,2,3,4};
int arr2[]=new int[]{1,3,2,4};
boolean isEquals=Arrays.equals(arr1,arr2);
System.out.println(isEquals);    //false



源码如下:

   public static boolean equals(int[] a, int[] a2) {
        if (a==a2)
            return true;
        if (a==null || a2==null)
            return false;

        int length = a.length;
        if (a2.length != length)
            return false;

        return ArraysSupport.mismatch(a, a2, length) < 0;
    }

 

2.String toString(int[] a)   //输出数组信息

int arr[]=new int[]{1,2,3,4};
System.out.println(Arrays.toString(arr));

源码如下:

    public static String toString(int[] a) {
        if (a == null)
            return "null";
        int iMax = a.length - 1;
        if (iMax == -1)
            return "[]";

        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0; ; i++) {
            b.append(a[i]);
            if (i == iMax)
                return b.append(']').toString();
            b.append(", ");
        }
    }

3.void fill(int[] a,int val)      //将指定值填充到数组之中

int arr[]=new int[]{1,2,3,4};
Arrays.fill(arr,10);   //将指定值填充到数组之中
System.out.println(Arrays.toString(arr));   //输出数组信息
//结果为:10,10,10,10

源代码如下:

    public static void fill(int[] a, int val) {
        for (int i = 0, len = a.length; i < len; i++)
            a[i] = val;
    }

4.void sort(int[] a)     //对数组进行排序

int arr[]=new int[]{3,1,4,,2};
Arrays.sort(arr);     //对数组进行排序
System.out.println(Arrays.toString(arr));   //输出数组信息
//结果为:1,2,3,4

源代码为:

    public static void sort(int[] a) {
        DualPivotQuicksort.sort(a, 0, 0, a.length);
    }
    static void sort(int[] a, int parallelism, int low, int high) {
        int size = high - low;

        if (parallelism > 1 && size > MIN_PARALLEL_SORT_SIZE) {
            int depth = getDepth(parallelism, size >> 12);
            int[] b = depth == 0 ? null : new int[size];
            new Sorter(null, a, b, low, size, low, depth).invoke();
        } else {
            sort(null, a, 0, low, high);
        }
    }

5.int binaryaySearch(int[] a,int key)      //对排序后的数组进行二分法检索指定的值

int arr[]=new int[] {1,2,3,4,5,6,7,8,9,10};
int index=Arrays.binarySearch(arr, 6);
if(index>=0) {
	System.out.println(index);
}else {
	System.out.println("未找到");
}
//结果为:5

源代码为:

    public static int binarySearch(int[] a, int key) {
        return binarySearch0(a, 0, a.length, key);
    }
    private static int binarySearch0(int[] a, int fromIndex, int toIndex,
                                     int key) {
        int low = fromIndex;
        int high = toIndex - 1;

        while (low <= high) {
            int mid = (low + high) >>> 1;
            int midVal = a[mid];

            if (midVal < key)
                low = mid + 1;
            else if (midVal > key)
                high = mid - 1;
            else
                return mid; // key found
        }
        return -(low + 1);  // key not found.
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值