Bootstrap

Java刷题常用的Arrays方法(超全~~~)

Java-Arrays类常用方法详解
一、Arrays类的定义 Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法二、Arrays类的常用方法

1、Arrays.fill(Object[ ] array, Object obj)

用指定元素填充整个数组(替换数组原元素)

      int arr[]={1,2,3,4};
      Arrays.fill(arr,5);
      for(int i=0;i<arr.length;i++)
       {
           System.out.println(arr[i]);//[5,5,5,5]
       }

2、Arrays.sort(Object [ ]arr)

对传入数组进行递增排序,字符则按照ASCII进行排序(不区分大小写)

       int arr[]={5,2,3,4};
       char nums[]={'n','c','a','o'};
       Arrays.sort(nums);
       for(int i=0;i<nums.length;i++)
       {
           System.out.println(nums[i]);//[a,c,n,o]
       }
        for(int i=0;i<arr.length;i++)
        {
            System.out.println(arr[i]);//[2,3,4,5]
        }

Arrays.sort(Object [ ]arr,int start,int end)

对区间内的元素进行递增排序

       int arr[]={5,2,3,4};
       Arrays.sort(arr,0,2);
        for(int i=0;i<arr.length;i++)
        {
            System.out.println(arr[i]);//[2,5,3,4]
        }

3、Arrays.equal(Object []arr,Object []nums)

判断两个数组是否相等,实际上比较的是两个数组的哈希值,

      char arr[]={'a','b','C'};
      char nums[]={'a','B','C'};
       System.out.println(Arrays.equals(arr,nums));//false

     int arr[]={1,2,3};
     int nums[]={1,2,3};
       System.out.println(Arrays.equals(arr,nums));//true

4、Array.hashCode(Object []arr)

返回数组的哈希值

Int[] data = {1, 2, 3};
System.out.println(Arrays.hashCode(data)); // 30817

5、Arrays.copyOf(Object [])

拷贝数组,其内部调用了 System.arraycopy() 方法,从下标0开始,如果超过原数组长度,会用null进行填充。

​
​
int[] data1 = {1, 2, 3, 4};
int[] data2 = Arrays.copyOf(data1, 2);
for(int i=0;i<data2.length;i++)
{
System.out.println(data2[i]); // [1, 2]
}
int[] data2 = Arrays.copyOf(data1, 5);
for(int i=0;i<data2.length;i++)
{
System.out.println(data2[i]); // [1, 2, 3, 4, null]
}

​

​

Arrays.copyOfRange(T[] original, int from, int to)

拷贝数组,指定起始位置和结束位置,如果超过原数组长度,会用null进行填充

​
​
​
int[] data1 = {1, 2, 3, 4};
int[] data2 = Arrays.copyOfRange(data1, 0, 2);
for(int i=0;i<data2.length;i++)
{
System.out.println(data2[i]); // [1, 2]
}
int[] data2 = Arrays.copyOfRange(data1, 5);
for(int i=0;i<data2.length;i++)
{
System.out.println(data2[i]); // [1, 2, 3, 4, null]
}

​

​

​

6、Arrays.toString(Object []arr)

将数组中的内容全部打印出来

​
     char arr[]={'a','b','C'};
      int nums[]={1,1,2,3,4};
     System.out.println(Arrays.toString(arr));//[a,b,c]
     System.out.println(Arrays.toString(nums));//[1,1,2,3,4]

​

7、Arrays.binarySearch(Object []arr,T ans)

二分查找法找指定元素的索引值(数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置)

    int[] arr = {10,20,30,40,50};
	System.out.println(Arrays.binarySearch(arr, 30));
    //输出:2 (下标索引值从0开始)

	int[] arr = {10,20,30,40,50};
	System.out.println(Arrays.binarySearch(arr, 36));
	//输出:-4 (找不到元素,返回-x,从-1开始数,如题,返回-4)

;