欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Arrays

程序员文章站 2024-03-05 23:13:01
...

Arrays

java.util.Arrays;

转换数组为字符串

Method : Arrays.toString()

    将数组转换为字符串,以符号”[“开头,”]”结尾。

int a = {1,2,3};
print(Arrays.toString(a));
// [1,2,3]

插入数据

Method : Arrays.fill();

    将一个数组每个位置都填入数据为目标值。

int[] a = new int[3];
Arrays.fill(a,12);
print(Arrays.toString(a));
// [12,12,12]

复制数组

Method : System.arraycopy();

    使用该方法复制数组比使用for循环复制数组要快很多,arraycopy()中的参数有源数组、开始复制的数组的位置,目标数组,目标数组位置,复制数据的个数。

int[] a = new int[2]; //源数组
int[] b = new int[5]; //目标数组
System.arraycopy(a,0,b,1,a.length); //0 代表从数组a下标0开始复制,1 代表从数组b下标为1的位置开始复制,a.length代表复制数据长度为数组a的长度

注意 :

  • 如果复制对象数组,那么只是复制了对象的引用,而不是对象本身的拷贝。这种复制称为浅复制

  • 对数组的任何越界操作都会导致异常。

  • System.arraycopy()不会执行自动包装和自动拆包,两个数组必须具有相同的确切类型。

数组比较

Arrays.equals()

    可以使用Arrays.equals()来比较两个数组是否相等,判断相等的条件是元素个数相等、对应下标的元素也相等。

int[] a1 = new int[2];
int[] a2 = new int[2];
int[] a3 = new int[2];
Arrays.fill(a1,1);
Arrays.fill(a2,2);
Arrays.fill(a3,1);
print(Arrays.equals(a1,a2)); //false
print(Arrays.equals(a1,a3)); //true

数组排序

Arrays.sort()

    对数组进行排序,如果是非整型数组,可以实现Comparable接口,重写compareTo方法来对数组按照自己的需要进行排序。

//可重写的方法
public int compareTo(XXXX xx){
    if(){
        return -1; // 当前值小于传进来的xx中包含的值
    }else if(){
        return 0; //二者相等
    }else{
        return 1; //当前值大于传进来的xx中包含的值
    }
}

查找数组下标元素

Arrays.binarySearch()

    使用该方法可以在数组中快速查号目标元素的下标,但是这个方法的前提是当前数组必须是拍好序的,否则会产生不可预料的结果。方法中两个参数,第一个为查找的数组,第二个为要查找的元素。如果可以查找到元素,那么返回值大于等于0,否则返回值小于0。

int[] a = {1,2,3,4};
int r = 2; //要查找的数组元素
print(Arrays.binarySearch(a,r)); //1  此时查找的元素是2,他在数组中的位置下标为1,所以返回1.