Java中的Util.Arrays和Reflect.Array

util.Arrays类

java.util.Arrays中的类包含一个静态工厂允许数组被视为列表。以下是关于数组的要点-

  • 此类包含用于操纵数组的各种方法(例如排序和搜索)。

  • 如果指定的数组引用为null,则此类中的方法将引发NullPointerException。

例如,equals()此类的方法接受两个数组并进行比较。

示例

import java.util.Arrays;
public class ComparingArrays {
   public static void main(String args[]){
      String[] myArray1 = {"JavaFX", "HBase", "OpenCV", "WebGL", "FlexBox"};
      String[] myArray2 = {"JavaFX", "HBase", "OpenCV", "WebGL", "FlexBox"};
      Boolean result = Arrays.equals(myArray1, myArray2);
      System.out.println(result);
   }
}

输出结果

True

asList()此类的方法接受一个数组并返回一个固定大小的列表。

示例

import java.util.Arrays;
import java.util.List;
public class ArrayToList {
   public static void main(String args[]){
      Integer[] myArray = {23, 93, 56, 92, 39};
      List list = Arrays.asList(myArray);
      System.out.println(list);
   }
}

输出结果

[23, 93, 56, 92, 39]

lang.reflect.Array类

java.lang.reflect包的Array类提供了静态方法来动态创建和访问Java数组。数组允许在get或set操作期间发生扩展转换,但是如果将发生缩小转换,则抛出IllegalArgumentException。

此类提供一个newInstance()方法,getter方法和setter方法。该newInstance()方法接受一个名为Class的类的对象,该对象表示所需的组件,一个整数表示数组的长度,创建并返回具有给定规格的数组。

这个类的获取方法getLong()getInteger()getLong()等接受一个对象,并表示一个索引的整数形式的数组,并返回在指定的索引给定数组的元件。

这个类的设置方法setLong()setInteger()setLong()等接受一个对象,代表索引和相应的数据类型的值的整数形式的数组并设置指定索引处的给定值。

示例

import java.lang.reflect.Array;
import java.util.Arrays;
public class Reflection_ArrayExample {
   public static void main(String args[]){
      int [] intArray = (int[]) Array.newInstance(int.class, 5);
      intArray[0] = 2001;
      intArray[1] = 12447;
      intArray[2] = 6358;
      intArray[3] = 902;
      intArray[4] = 6654;
      Array.setInt(intArray, 1, 1111);
      Array.setInt(intArray, 3, 3333);
      Array.setInt(intArray, 4, 4444);
      System.out.println(Arrays.toString(intArray));
      System.out.println(Array.getInt(intArray, 1));
      System.out.println(Array.getInt(intArray, 3));
      System.out.println(Array.getInt(intArray, 4));
   }
}

输出结果

[2001, 1111, 6358, 3333, 4444]
1111
3333
4444