Java 之 数组 Arrays 工具类

  java.util.Arrays类即为操作数组的工具类, 包含了用来操作数组(比如排序和搜索) 的各种方法。

   

  (1)数组元素比较

 boolean equals(int[] a,int[] b):判断两个数组是否相等。

    Demo:

int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1, arr2);
System.out.println(isEquals);

  

  (2)输出数组信息

System.out.println(Arrays.toString(arr1));

  (3)填充数组元素

    数组完成声明后,可以通过 Arrays 类的静态方法 fill() 来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。

void fill(int[] a,int val): 将指定值填充到数组之中。

fill(int[] array,int fromindex,int toindex,value):指定的 int 值分配给int 类型数组指定范围中的每个元素。填充范围从索引 fromIndex(包含)到索引 toindex(不包含)。如果 fromindex == toindex,则填充范围为空。

    Demo:

1 public static void main(String[] args) {
2        int[] array = new int[]{5,15,25,35,45,55,65,75,85,95};
3        Arrays.fill(array,2,6,8);
4         for (int i : array) {
5             System.out.println(i);
6         }
7  }

    Tips:如果指定的索引位置大于或等于要进行填充的数组的长度,则会报出 ArrayIndexOutofBoundsException (数组越界异常)。

  (4)数组排序

    可以通过 Arrays 类的静态 sort() 方法可以实现对数组的排序。该方法提供了多种重载形式,可对任意类型的数组进行升序排序

void sort(int[] a):对数组进行排序。

    

  (5)在数组中查找

    Arrays 类的 binarySearch() 方法,可使用二分搜索法来搜索指定数组,以获得指定对象。该方法返回要搜索的元素的索引值。

int binarySearch(int[] a,int key):在整个数组中查找

binarySearch(Object[] array,int fromIndex,int toIndex,Object key):在指定的范围中查找值;(如果范围中的所有元素都小于指定的键,则为 toIndex)

     Tips:在进行调用之前对数组进行排序(通过 sort() 方法,如果没有对数组排序,结果是不确定的)

  

  (6)复制数组

    Arrays 类的 copyOf() 方法与 copyOfRange() 方法可以实现对数组的复制。copyOf() 方法的复制数组至指定长度,copyOfRange() 方法则将指定数组的指定长度复制到一个新数组中。

    a、copyOf()方法

copyOf(array,int newlength);

      newLength是 int 型常量,指复制后的新数组的长度。如果新数组的长度大于数组 array 的长度,则根据不同类型的数组用各自的默认值填充(如int类型用0填充),如果复制后的数组长度小于数组 array 的长度,则会从数组 array 的第一个元素开始截取至满足新数组长度为止。

    b、copyOfRange() 方法

copyOfRange(array,int fromIndex,int toIndex)

      fromIndex:指定开始复制数组的索引位置,fromindex 必须在 0 至整个数组的长度之间。新数组包括索引是 fromIndex 的元素。

      toIndex:要复制范围的最后索引,可大于数组 array 的长度。新数组不包括索引是 toIndex 的元素。

    Demo:

1 public static void main(String[] args) {
2         int[] array = new int[]{12,15,17};
3         int[] newarray = Arrays.copyOfRange(array,1,5);
4 
5         for (int i:newarray) {
6             System.out.println(i);
7         }
8 }

  

  

 

原文地址:https://www.cnblogs.com/niujifei/p/13622544.html