java常用类Arrays

java常用类Arrays

Arrays类:是针对数组操作的工具类,提供了排序、查找等功能
常用的成员方法:
public static String toString(int[] arr);   返回指定数组内容的字符串形式
public static void sort(int[] arr);      对指定int类型数组按数字升序进行排序
public static int binarySearch(int[] arr,int key);   使用二分法指定法来搜索指定的int 型数组,以获取指定的值
static boolean equals(int[] arr,int[] arr2);    比较两个数组中的元素是否一样
static int[] copyOf(int[] original,int newLength);   复制旧数组中的元素到一个新的数组中,新的数组长度是newLength 从0开始复制
static int[] copyOfRang(int[] original,int from,int to); 复制旧数组中的指定范围间的几个元素到新的数组中
class  MyTest{
    public static void main(String[] args){
        int[] arr={50,123,543,187,49,30,0,2,11,100};
        System.out.println(Arrays.toString(arr));
    }
    //Arrays类中toString(int[] a)的源码
	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(", ");
        }
    }
}
结果是

在这里插入图片描述

import java.util.Arrays;
class  MyTest{
    public static void main(String[] args) {
        int[] arr={1,2,3,4};
        int[] arr2={1,2,3,4};
        System.out.println(Arrays.equals(arr, arr2));
    }
    //Arrays类中equals(int[] a,int[] a2)的源码
    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;
        }
        for (int i = 0; i < length; i++) {
            if (a[i] != a2[i]) {
                return false;
            }
        }
        return true;
    }
}
结果是

在这里插入图片描述

class  MyTest{
    public static void main(String[] args) {
        //二分查找的数组前提必须是有序数组
        int[] arr={1,2,3,4,5,6,7,8,9};
        int i = Arrays.binarySearch(arr,8);
        System.out.println(i);
    }
    //Arrays类中equals(int[] a,int fromIndex, int toIndex,int 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.
    }
}
结果是

在这里插入图片描述

class  MyTest {
    public static void main(String[] args) {
        int[] arr={50,123,543,187,49,30,0,2,11,100};
        int[] ints = Arrays.copyOf(arr, 7);
        System.out.println(Arrays.toString(ints));
        int[] ints2 = Arrays.copyOfRange(arr, 3, 8);
        System.out.println(Arrays.toString(ints2));
    }
}
结果是

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值