package com.etc.Arrays; import java.util.Arrays; public class TestArraysClass { public static void main(String[] args) { int[] arr=new int[]{5,1,3,2,6,9,10}; int key=6; //1、Arrays.toString:返回指定数组内容的字符串表示形式。 System.out.println("排序前:"+Arrays.toString(arr));//[5, 1, 3, 2, 6, 9, 10] //2、Arrays.sort:对指定的 int 型数组按数字升序进行排序。 Arrays.sort(arr); System.out.println(" 排序后:"+Arrays.toString(arr));//[1, 2, 3, 5, 6, 9, 10] //3、 Arrays.binarySearch:使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。 int bs = Arrays.binarySearch(arr, key); System.out.println(" 使用二分搜索法查询数据元素为["+key+"]的数组索引下标是:"+bs);//使用二分搜索法查询数据元素为[6]的数组索引下标是:4 //使用二分搜索法来搜索指定的 int 型数组的范围,以获得指定的值。 int bs2 = Arrays.binarySearch(arr,0,arr.length-4,key); System.out.println(" 使用二分搜索法搜索指定的 int 型数组的范围:"); System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+bs2); System.out.println("查询数据元素为20的数组索引下标是"+ Arrays.binarySearch(arr,0,arr.length-4,20)); //不再搜索范围内的情况---如果它包含在数组的指定范围内,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点 就是指定范围长度的负数 System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-3,key));//-4-1==-5 System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-4,key));//-3-1=-4 System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-5,key));//-2-1=-3 System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-6,key));//-1-1=-2 System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-7,key));//-0-1=-1 //4、Arrays.copyOf:复制一个数组 int[] arr2={5,1,3,2,6,9,10}; arr2=Arrays.copyOf(arr,5); System.out.println(" arr2:"+Arrays.toString(arr2));//arr2:[1, 2, 3, 5, 6] arr2=Arrays.copyOf(arr,10); System.out.println("arr2:"+Arrays.toString(arr2));//arr2:[1, 2, 3, 5, 6, 9, 10, 0, 0, 0] //复制指定范围内的数组 arr2=Arrays.copyOfRange(arr,1,arr.length); System.out.println("arr2:"+Arrays.toString(arr2));//arr2:[2, 3, 5, 6, 9, 10] //5、Arrays.equals:比较两个数组是否相等 boolean b=Arrays.equals(arr,arr2); System.out.println(" Arrays.equals:"+b);//Arrays.equals:false //6、Arrays.copyOfRange: arr2=Arrays.copyOfRange(arr,0,arr.length); System.out.println(" "+arr.hashCode()+"---"+arr2.hashCode());//2110121908---32374789 System.out.println(arr.length+"---arr---"+Arrays.toString(arr));//7---arr---[1, 2, 3, 5, 6, 9, 10] System.out.println(arr2.length+"---arr2---"+Arrays.toString(arr2));//7---arr2---[1, 2, 3, 5, 6, 9, 10] System.out.println("Arrays.equals:"+Arrays.equals(arr,arr2));//Arrays.equals:true arr2=arr; System.out.println("equals:"+arr.equals(arr2));//equals:true System.out.println(arr.hashCode()+"---"+arr2.hashCode());//366712642---366712642 //7、将指定的 int 值分配给指定 int 型数组的每个元素。 Arrays.fill(arr2,11); System.out.println(" Arrays.fill(arr2,11): "+Arrays.toString(arr2));//Arrays.fill(arr2,11): [11, 11, 11, 11, 11, 11, 11] //将指定的 float 值分配给指定 float 型数组指定范围中的每个元素。 Arrays.fill(arr2,2,6,20); System.out.println("Arrays.fill(arr2,2,6,20): "+Arrays.toString(arr2));//Arrays.fill(arr2,2,6,20): [11, 11, 20, 20, 20, 20, 11] } }