操作数组的常用方法: toString、arraycopy、copyOf、copyOfRange、sort、binarySearch(二分查找)

为了加深印象做一篇笔记。

数组也有对应的增强for语句,语法结构如下:
for(声明变量 :数组名){

}
需要注意的是,必须新声明一个变量,使用声明过的变量是不可以的。

//打印数组的所有元素
for(int i : array){ 
System.out.println(i) //i依次取数组array每一个元素的值
}

toString
方法原型:
public static String toString(数组类型 数组名)

所以toSrting方法可以直接通过类名Arrays调用,可以提取目标数组所有元素,并按顺序转化为字符串

int data[]={1,4,7,2,5,8}
System.out.println(Arrays.toString(data));

将会打印为[1,4,7,2,5,8]

arraysCopy
方法原型:
public static void arraycopy(sourceArray, int index1, copyArray,int index2, int length)
包含在System类里

int a[]={1,2,3,4,5};
        int b[];
        int c[]={9,8,7,6,5,4,3,2,1};
        b=new int[5];
        System.arraycopy(a,0,b,0,a.length);
        System.arraycopy(a,1,c,0,3);//从下标1开始3个元素

运行后
b :[1, 2, 3, 4, 5]
c :[2, 3, 4, 6, 5, 4, 3, 2, 1]

将源数组sourceArray从下标 index1开始共length个元素复制到数组copyArray之中,copyArray从下标index2开始依次存放复制过来的元素。
需要注意的是,如果length超出了copyArray的长度就会发生异常。

copyOf
方法原型:
public static 数组类型 copyOf(数组类型 sourceArray ,int newLength )
包含在Arrays类中

 int[] a={1,2,3,4,5};
        int [] b=Arrays.copyOf(a,10);

运行后 b: [1, 2, 3, 4, 5, 0, 0, 0, 0, 0]

把源数组sourceArray从下标0开始的newLength个元素复制到一个新的数组中,并返回这个新数组,新数组的长度为newLength
需要注意的是如果newLength大于sourceArray的长度,超出的元素取默认值。

copyOfRange
方法原型:
public static 数组类型 copyOfRang(数组类型 original,int from ,int to)
包含在Arrays类中

int[] a={1,2,3,4,5};
int [] b=Arrays.copyOfRange(a,3,10);

运行后 b :[4, 5, 0, 0, 0, 0, 0]

把参数original指定的数组从下标0到下标(to-1)(数组original的第to个元素)
复制到一个新的数组中,新数组长度为to-from。如果to的值大于数组数组original的长度,那么超出部分取默认值。

sort
方法原型:
public static void sort(数组类型 array)

包含在Arrays类中,可以把数组array按升序排序

方法原型:
public static void sort(数组类型 array, int start, int end)

包含在Arrays类中,可以把参数array中下标start至下标end-1的元素(第end个元素)按升序排序。

int[] a={10,2,30,45,5};
int [] b={9,4,6,20,11,12};

 Arrays.sort(a);
 Arrays.sort(b,0,3);

运行之后
a :[2, 5, 10, 30, 45]
b :[4, 6, 9, 20, 11, 12]

binarySearch (二分查找)
方法原型:
public static int binarySearch(数组类型 array, 类型 target)
包含在Arrays类中
判断参数target指定的数据是否在参数array指定的数组当中,如果target和数组array中的某个元素相同,该方法就返回该元素的索引(下标),否则返回一个负数。
需要注意的是array必须是已排序好的数组。

  int [] b={9,4,6,20,11,12};
    Arrays.sort(b);
    int x=Arrays.binarySearch(b,20);
    if(x>=0){
        System.out.println(x); //输出索引
}

你可能感兴趣的:(java,经验分享,程序人生)