Java中的Arrays工具类


java.util.Arrays

 java.util包下的Arrays类时Java提供给我们用来操作数组的,它提供的所有方法都是静态的,具有以下功能:
  给数组赋值:通过fill方法。
  对数组排序:通过sort方法。
  数组的比较:通过equals方法比较数组中元素的值是否相等。
  查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

说明:

 1.public static int binarySearch(Object[] a,Object key)用二分查找算法在给定数组中搜索给定值的对象(byte,int,double等)。数组在调用前必须是排序好的,如果查找值包含在数组中,则返回搜索键的索引;否则返回( -(插入点) - 1 )。

 2.public static boolean equals(long[] a,long[] a2)如果两个指定的long型数组彼此相等,则返回true,如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。也就是说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型的数组(byte,short,int等)。

 3.public static void fill(int[] a,int val)将指定的int值分配给指定的int型的数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(byte,short,int等)。

 4.public static void sort(Object[] a)对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(byte,short,int等)。

/*
* @author 刘小将
* 测试Arrays工具类
*/

import java.util.Arrays;

public class TestArrays{
      
      public static void output(int[] array){
            if(array!=null){
                  for(int i = 0;i < array.length;i++){
                        System.out.print(array[i]+"");
                  }
            }
            System.out.println();
      }

      //主方法(main)
      public static void main(String[] args){
            int[] array = new int[5];
            //填充数组
            Arrays.fill(array,5);
            TestArrays.output(array);

            //将数组的第2个和第3个元素赋值为8
            Arrays.fill(array,2,4,8);
            TestArrays.output(array);

            int[] array1 = {7,8,3,2,12,6,3,5,4};
            //对数组的第2个到第6个进行排序
            Arrays.sort(array1,2,7);
            TestArrays.output(array1);
            
            //对整个数组进行排序
            Arrays.sort(array1);
            TestArrays.output(array1);

            //比较数组元素是否相等
            boolean b = Arrays.equals(array,array1);
            System.out.println(b);
            int[] array2 = array1.clone();
            TestArrays.output(array2);

            //使用二分搜索算法查找(必须是排序好的,否则结果不正确)
            Arrays.sort(array1);
            //元素3在array1中的位置:Arrays.binarySearch(array1,3)            
            int temp = Arrays.binarySearch(array1,3);
            System.out.println(temp);
            //元素9在array1中的位置:Arrays.binarySearch(array1,9)
            //如果不存在就返回负数
            temp = Arrays.binarySearch(array1,9);
            System.out.println(temp);            

      }

}


运行结果如下:

5 5 5 5 5
5 5 8 8 5
7 8 2 3 3 6 12 5 4
2 3 3 4 5 6 7 8 12
false
2 3 3 4 5 6 7 8 12
1
-9

原文地址:https://www.cnblogs.com/joyfulcode/p/13297771.html