Java 中的 Util.Arrays 和 Reflect.Array

java 8object oriented programmingprogramming更新于 2025/11/7 14:36:17

util.Arrays 类

java.util.Arrays 类包含一个静态工厂,允许将数组视为列表。以下是关于 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 数组的静态方法。Array 允许在 get 或 set 操作期间进行扩展转换,但如果发生收缩转换,则会抛出 IllegalArgumentException。

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

此类的 getter 方法 getLong()、getInteger()、getLong() 等接受一个对象形式的数组和一个表示索引的整数,并返回指定索引处给定数组的元素。

此类的 setter 方法 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

相关文章