Arryas中方法的联系

2020-04-14

  1. Arrays提供了一个copyOfRange方法进行数组复制。不同的是System.arraycopy,需要事先准备好目标数组,并分配长度。 copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了。
package Arrays联系;

import java.lang.reflect.Array;
import java.util.Arrays;

public class copytext
{
    public static void main(String[] args) {
        int a[]=new int[]{1,2,3,4,5};
        // copyOfRange(int[] original, int from, int to)
        // 第一个参数表示源数组
        // 第二个参数表示开始位置(取得到)
        // 第三个参数表示结束位置(取不到)
        int[] b= Arrays.copyOfRange(a,0,5);
        for (int i=0;i<b.length;i++)
        {
            System.out.println(b[i]);
        }
    }
}

  

 

该方法需要传递3个参数,分别为复制数组、开始节点序号、结束节点序号;(数组已0开始,所以结束序号内容不会被复制)

2.转换为字符串

  

package Arrays联系;

import java.lang.reflect.Array;
import java.util.Arrays;

public class copytext {
    public static void main(String[] args) {
        int a[] = new int[]{1, 2, 3, 4, 5};
        String as=Arrays.toString(a);
        System.out.println(as);
    }
}

Arrays.toString方法,将数组转换为字符串,转换得到的内容是包括【】。

 

3.Arryas中自带的一个排序方法sort()

package Arrays联系;

import java.lang.reflect.Array;
import java.util.Arrays;

public class copytext {
    public static void main(String[] args) {
        int a[] = new int[]{78,24,105,33,99};
        Arrays.sort(a);//方法调用
        String as=Arrays.toString(a);
        System.out.println(as);
    }
}

sort()方法会将数组中的内容按从小到大进行排序;

3.1查询元素出现的位置

需要注意的是,使用binarySearch进行查找之前,必须使用sort进行排序
如果数组中有多个相同的元素,查找结果是不确定的

package Arrays联系;

import java.lang.reflect.Array;
import java.util.Arrays;

public class copytext {
    public static void main(String[] args) {
        int a[] = new int[]{78,24,105,33,99};
        Arrays.sort(a);//方法调用
        String as=Arrays.toString(a);
        System.out.println(as);
        System.out.println("99在数组中的序号为"+Arrays.binarySearch(a,99));
    }
}

得到结果:

[24, 33, 78, 99, 105]
99在数组中的序号为3

Process finished with exit code 0

注:Arrays.binarySearch()得到的是搜索值的角标【小1】)

 

4.判断是否相等

比较两个数组的内容是否一样

package Arrays联系;

import java.lang.reflect.Array;
import java.util.Arrays;

public class copytext {
    public static void main(String[] args) {
        char a[]=new char[]{'a','s','d','w'};
        char b[]=new char[]{'a','s','d','w'};
        System.out.println(Arrays.equals(a,b));
    }
}

方法返回值为true或者false,无法精确定位到不同位置,需注意