Java Arrays数组类的用法(附带实例)
Java 提供了 Arrays 类用于操作数组,其中包含了大量操作数组的静态方法,比如对数组进行排序和查找等。
由于 Arrays 类的所有方法都是静态的,因此使用时直接通过“Arrays.xxx”的方式进行调用即可。
其中 toString() 方法只能对一维数组进行转换,而 deepToString() 方法则是 toString() 方法的升级版,除支持一维外还支持二维及以上的数组转换。
下面是一个打印数组内容的例子:
输出结果:
下面的实例程序展示了整数和字符串的排序情况:
输出结果为:
下面实例展示了 equals() 方法的使用:
输出结果为:
举个简单的例子:
输出结果:
创建的两个数组中所有元素的初始值都为 0,通过 Arrays.fill(arr1, 10) 将 arr1 中的所有元素都赋值为 10,通过 Arrays.fill(arr2, 3, 7, 10) 将 arr2 中 3~6(不包含 7)索引范围内的元素都赋值为 10。
由于 Arrays 类的所有方法都是静态的,因此使用时直接通过“Arrays.xxx”的方式进行调用即可。
Arrays类打印数组内容
有时为了查看数组内容需要将其打印出来,此时可以使用 Arrays 类提供的 toString() 和 deepToString() 两个方法,它们用于将数组转换为字符串,转换成字符串后便可以直接将其打印出来了。其中 toString() 方法只能对一维数组进行转换,而 deepToString() 方法则是 toString() 方法的升级版,除支持一维外还支持二维及以上的数组转换。
下面是一个打印数组内容的例子:
- public class ArraysTest {
- public static void main(String[] args) {
- String[] arr1 = { "Java", "数组", "字符串" };
- String[][] arr2 = { { "Java", "数组" }, { "二维", "字符串" }, { "Arrays", "类" } };
- System.out.println(arr1);
- System.out.println(arr2);
- System.out.println(Arrays.toString(arr1));
- System.out.println(Arrays.deepToString(arr2));
- }
- }
[Ljava.lang.String;@512ddf17 [[Ljava.lang.String;@2c13da15 [Java, 数组, 字符串] [[Java, 数组], [二维, 字符串], [Arrays, 类]]可以看到,如果我们直接打印数组对象是无法看到数组的内容的,输出的只是对象编号。而转换成字符串后最终输出数组结构的字符串。
Arrays类数组排序
要想对某个数组进行排序可以使用 Arrays 类的 sort() 方法,该方法能将数组中的元素按照升序进行排序。下面的实例程序展示了整数和字符串的排序情况:
- public class ArraysTest {
- public static void main(String[] args) {
- int[] arr1 = { 3, 4, 2, 7, 1, 4, 9 };
- String[] arr2 = { "C", "T", "A", "D" };
- String[] arr3 = { "Java", "Array", "array", "two", "Three" };
- System.out.println(Arrays.toString(arr1));
- System.out.println(Arrays.toString(arr2));
- System.out.println(Arrays.toString(arr3));
- Arrays.sort(arr1);
- Arrays.sort(arr2);
- Arrays.sort(arr3);
- System.out.println("========排序后=======");
- System.out.println(Arrays.toString(arr1));
- System.out.println(Arrays.toString(arr2));
- System.out.println(Arrays.toString(arr3));
- }
- }
[3, 4, 2, 7, 1, 4, 9] [C, T, A, D] [Java, Array, array, two, Three] ========排序后======= [1, 2, 3, 4, 4, 7, 9] [A, C, D, T] [Array, Java, Three, array, two]可以看到经过 sort() 方法排序后的数组是升序的。
Arrays类判断两个数组是否相等
Arrays 类提供了 equals() 方法用于判断两个数组是否相等,所谓相等是指两个数组中的每个元素都一样,而且必须是按顺序从头到尾进行比较。下面实例展示了 equals() 方法的使用:
- public class ArraysTest {
- public static void main(String[] args) {
- int[] arr1 = { 10, 24, 46, 78 };
- int[] arr2 = { 10, 24, 46 };
- int[] arr3 = { 10, 24, 46, 78 };
- String[] arr4 = { "Java", "数组", "大小" };
- String[] arr5 = { "Java", "数组", "大小" };
- System.out.println(Arrays.equals(arr1, arr2));
- System.out.println(Arrays.equals(arr1, arr3));
- System.out.println(Arrays.equals(arr4, arr5));
- }
- }
false true true
Arrays类填充数组
有时如果想对数组中的多个元素赋为同一个值,那么可以使用 Arrays 类的 fill() 方法,它可以将指定的值赋给整个数组或指定范围内的元素。举个简单的例子:
- public class ArraysTest {
- public static void main(String[] args) {
- int[] arr1 = new int[10];
- int[] arr2 = new int[10];
- Arrays.fill(arr1, 10);
- Arrays.fill(arr2, 3, 7, 10);
- System.out.println(Arrays.toString(arr1));
- System.out.println(Arrays.toString(arr2));
- }
- }
- [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
- [0, 0, 0, 10, 10, 10, 10, 0, 0, 0]