如何在 Java 中打印数组

2024年10月23日 | 阅读 7 分钟

Java 数组是一种数据结构,我们可以将相同数据类型的元素存储在其中。数组的元素存储在连续的内存位置。因此,我们可以将固定数量的元素存储在数组中。

在 Java 中打印数组有以下几种方法:

  • Java for 循环
  • Java while 循环
  • Java for-each 循环
  • Java Arrays.toString() 方法
  • Java Arrays.deepToString() 方法
  • Java Arrays.asList() 方法
  • Java Iterator 接口
  • Java Stream API
  • Java forEach() 方法

Java for 循环

Java for 循环用于重复执行一组语句,直到满足特定条件为止。

语法

for 循环示例

在下面的示例中,我们创建了一个长度为 4 的数组并为其初始化了元素。我们使用 for 循环从数组中获取值。这是在 Java 中打印数组最流行的方式。

文件名:PrintArrayExample1.java

输出

10
20
70
40

解释

给定的 Java 代码创建了一个大小为 4 的整数数组 arr,并为其每个组件设置了特定的值。然后使用 for 循环遍历该数组,并使用 System.out.println() 在新行上打印每个元素。此代码熟练地演示了 Java 数组的声明、实例化、初始化和遍历。

Java while 循环

Java 中的 while 循环是一种控制流语句,它允许在一组语句作为指定条件计算为 true 的情况下重复执行。

文件名:PrintArrayExample.java

输出

1 2 3 4 5

Java for-each 循环

Java for-each 循环也用于遍历数组或集合。它基于元素工作。它将定义的变量中的元素一个一个地返回。

语法

for-each 循环示例

在下面的示例中,我们创建了一个长度为 4 的 String 类型数组并为其初始化了元素。我们使用了 for-each 循环来遍历数组。

文件名:PrintArrayExample2.java

输出

Delhi
Jaipur
Gujarat
Mumbai

解释

提供的 Java 代码创建了一个名为 city 的字符串数组,容量为 4,并为每个条目分配了特定的城市名称。它使用 for-each 循环遍历数组的每个元素并单独打印它们。此代码清晰地展示了如何在 Java 中使用 for-each 循环遍历数组,提供了一种清晰易懂的方法来访问数组组件,而无需显式管理索引。

Java Arrays.toString() 方法

Java Arrays.toString() 是 Arrays 类的一个静态方法,属于 Java.util 包。它包含用于操作数组的各种方法。

语法

它接受任何原始类型的数组作为参数。它返回一个包含数组元素列表的数组的**字符串**表示形式。数组的元素通过 **String.valueOf(int)** 转换为 String。

toString() 方法示例

文件名:PrintArrayExample3.java

输出

[34, -10, 56, -9, -33]

解释

给定的 Java 代码使用 java.util.Arrays 类中的 Arrays.toString() 方法打印整数数组 array 的字符串表示形式。使用方括号和逗号分隔元素,此方法将数组的元素格式化为字符串。Arrays.toString(array) 是传递给 System.out.println() 的参数,它将数组的字符串表示形式打印到控制台。此方法可以轻松地将数组的内容显示为单个字符串,这有助于在 Java 程序中进行输出格式化和调试。

Java Arrays.deepToString() 方法

Java Arrays 类的 **deepToString()** 方法用于将多维数组转换为字符串。

语法

它接受一个数组作为参数。它返回数组的字符串表示形式。

deepToString() 方法示例

在下面的示例中,我们创建了一个二维 float 类型数组。

文件名:PrintArrayExample4.java

输出

[[1.2, 2.5], [3.9, 4.0], [5.3, 6.2]]

解释

使用数组初始化器,提供的 Java 代码初始化了一个名为 array 的二维 float 数组。该数组由三行组成,每行包含两个 float 值。java.util.Arrays.deepToString() 函数。然后,将该数组作为参数调用 Arrays 类。通过使用方括号括起每个嵌套数组的字符串表示形式,并使用逗号分隔行,此方法将二维数组转换为字符串表示形式。

Java Arrays.asList() 方法

Java Arrays.asList() 是 Java Arrays 类的一个静态方法,属于 Java.util 包。它充当基于数组和基于集合的 API 之间的桥梁。

语法

该方法还提供了一种创建固定大小列表的简单方法,该列表被初始化为包含许多元素。

它接受一个数组作为参数。它返回数组的列表视图。

asList() 方法示例

文件名:PrintArrayExample5.java

输出

[Hello, Java, Programmers]

解释

提供的 Java 代码使用 "Hello," "Java," 和 "Programmers" 这三个元素初始化了一个名为 stringArray 的一维字符串数组。然后,使用 java.util.Arrays 类中的 Arrays.asList() 函数将数组转换为 List。该函数将数组的元素作为 List 的元素返回。

Java Iterator 接口

Java **Iterator** 是一个接口,属于 **java.util** 包。可以通过调用 iterator() 方法来创建 Iterator 对象。它存在于 Collection 接口中。它返回一个迭代器。

Iterator 接口示例

在下面的示例中,我们声明了一个数组并为其初始化了元素。我们首先使用 Arrays.asList() 方法将指定的数组转换为列表,因为迭代器允许我们遍历集合,然后调用集合类的 iterator() 方法。

文件名:PrintArrayExample6.java

输出

1.5
2.6
3.7
4.8
5.9

解释

Java 代码使用五个 double 值初始化了一个名为 array 的 double 类型数组。它使用 Arrays.asList() 将此数组转换为 List,然后从该 List 中提取一个迭代器。使用 while 循环,它在通过迭代器遍历 List 的元素时将每个元素打印到控制台。此技术提供了使用迭代器顺序访问数组元素,提供了浏览集合的传统方法。

Java Stream API

Java Stream 是一种按需计算的数据结构。它不存储数据。它在源数据结构(如集合或数组)上运行。Java 流 API 用于实现内部迭代。它提供了顺序和并行执行等多种功能。

Java stream() 方法

Java **stream()** 是 Java **Arrays** 类的一个静态方法,属于 java.util 包。它用于获取数组的顺序流。

语法

其中 **T** 是数组的类型。该方法接受一个**数组**,其元素将被转换为顺序流。它返回一个以指定数组为源的顺序 **IntStream**。

Java forEach() 方法

这是一个终端操作。它不保证尊重流的遭遇顺序。

语法

该方法接受一个**动作**作为参数。它是一种非干扰性的动作,用于对每个元素执行。它不返回任何内容。

我们可以将两个终端操作应用于流来打印数组。

获取流的迭代器

使用 stream().forEach()

stream.forEach() 方法示例

在下面的示例中,我们使用了不同的方法来打印数组。forEach() 方法用于迭代流的每个元素。它在 Iterable 和 Stream 接口中定义。

在 forEach() 方法内部,我们使用了 System.out,这是一个指向对象的引用。它代表标准输出流。它有一个名为 println() 的方法。它是一个重载方法,可以接受任何内容作为参数。当我们把 println() 方法放在成员访问运算符 (::) 之后时,它就变成了一个表达式。

文件名:PrintArrayExample7.java

输出

Java
C
C++
Python
Perl

解释

提供的 Java 代码用五个元素初始化了一个名为 arr 的字符串数组。然后,使用 Arrays.stream() 方法和 Java 8 的 Stream API 将数组转换为流。Stream 受到 forEach() 终端操作的处理,该操作通过调用 System.out 的 println() 方法使每个元素打印到控制台。此方法利用函数式编程概念,迭代数组并简洁地打印其内容。


下一个主题Java 教程