首页 > 编程笔记 > Java笔记 阅读:13

Java Arrays数组类的用法(附带实例)

通义灵码
Java 提供了 Arrays 类用于操作数组,其中包含了大量操作数组的静态方法,比如对数组进行排序和查找等。

由于 Arrays 类的所有方法都是静态的,因此使用时直接通过“Arrays.xxx”的方式进行调用即可。

Arrays类打印数组内容

有时为了查看数组内容需要将其打印出来,此时可以使用 Arrays 类提供的 toString() 和 deepToString() 两个方法,它们用于将数组转换为字符串,转换成字符串后便可以直接将其打印出来了。

其中 toString() 方法只能对一维数组进行转换,而 deepToString() 方法则是 toString() 方法的升级版,除支持一维外还支持二维及以上的数组转换。

下面是一个打印数组内容的例子:
  1. public class ArraysTest {
  2. public static void main(String[] args) {
  3. String[] arr1 = { "Java", "数组", "字符串" };
  4. String[][] arr2 = { { "Java", "数组" }, { "二维", "字符串" }, { "Arrays", "类" } };
  5. System.out.println(arr1);
  6. System.out.println(arr2);
  7. System.out.println(Arrays.toString(arr1));
  8. System.out.println(Arrays.deepToString(arr2));
  9. }
  10. }
输出结果:
[Ljava.lang.String;@512ddf17
[[Ljava.lang.String;@2c13da15
[Java, 数组, 字符串]
[[Java, 数组], [二维, 字符串], [Arrays, 类]]
可以看到,如果我们直接打印数组对象是无法看到数组的内容的,输出的只是对象编号。而转换成字符串后最终输出数组结构的字符串。

Arrays类数组排序

要想对某个数组进行排序可以使用 Arrays 类的 sort() 方法,该方法能将数组中的元素按照升序进行排序。

下面的实例程序展示了整数和字符串的排序情况:
  1. public class ArraysTest {
  2. public static void main(String[] args) {
  3. int[] arr1 = { 3, 4, 2, 7, 1, 4, 9 };
  4. String[] arr2 = { "C", "T", "A", "D" };
  5. String[] arr3 = { "Java", "Array", "array", "two", "Three" };
  6. System.out.println(Arrays.toString(arr1));
  7. System.out.println(Arrays.toString(arr2));
  8. System.out.println(Arrays.toString(arr3));
  9. Arrays.sort(arr1);
  10. Arrays.sort(arr2);
  11. Arrays.sort(arr3);
  12. System.out.println("========排序后=======");
  13. System.out.println(Arrays.toString(arr1));
  14. System.out.println(Arrays.toString(arr2));
  15. System.out.println(Arrays.toString(arr3));
  16. }
  17. }
输出结果为:
[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() 方法的使用:
  1. public class ArraysTest {
  2. public static void main(String[] args) {
  3. int[] arr1 = { 10, 24, 46, 78 };
  4. int[] arr2 = { 10, 24, 46 };
  5. int[] arr3 = { 10, 24, 46, 78 };
  6. String[] arr4 = { "Java", "数组", "大小" };
  7. String[] arr5 = { "Java", "数组", "大小" };
  8. System.out.println(Arrays.equals(arr1, arr2));
  9. System.out.println(Arrays.equals(arr1, arr3));
  10. System.out.println(Arrays.equals(arr4, arr5));
  11. }
  12. }
输出结果为:
false
true
true

Arrays类填充数组

有时如果想对数组中的多个元素赋为同一个值,那么可以使用 Arrays 类的 fill() 方法,它可以将指定的值赋给整个数组或指定范围内的元素。

举个简单的例子:
  1. public class ArraysTest {
  2. public static void main(String[] args) {
  3. int[] arr1 = new int[10];
  4. int[] arr2 = new int[10];
  5. Arrays.fill(arr1, 10);
  6. Arrays.fill(arr2, 3, 7, 10);
  7. System.out.println(Arrays.toString(arr1));
  8. System.out.println(Arrays.toString(arr2));
  9. }
  10. }
输出结果:
  1. [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
  2. [0, 0, 0, 10, 10, 10, 10, 0, 0, 0]
创建的两个数组中所有元素的初始值都为 0,通过 Arrays.fill(arr1, 10) 将 arr1 中的所有元素都赋值为 10,通过 Arrays.fill(arr2, 3, 7, 10) 将 arr2 中 3~6(不包含 7)索引范围内的元素都赋值为 10。

相关文章