在 Java 编程语言中,数组是有序的数据集合。 您可以使用数组以结构化的方式存储信息。 了解在需要时检索这些数据的各种方法非常有用。 值得注意的是,在 Java 中,关联数组(在某些语言中也称为字典)被称为哈希映射。 本文不包括哈希映射,但您可以在我的在 Java 中使用哈希映射文章中阅读所有相关内容。
创建字符串数组
Java 中最简单的数组是一维数组。它本质上是一个列表。 对于字符串数组
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = {"foo", "bar", "baz"};
// retrieval
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
请注意,从数组中检索数据时,索引从 0 开始,而不是从 1 开始。 换句话说,包含三个值的数组编号为 0 到 2。
或者,您可以创建一个数组并在以后填充它。 但是,执行此操作时,您还必须告诉 Java 数组的长度。 在这种情况下,“长度”是指数组可以容纳的项目数。
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = new String[3];
System.out.println("Empty myArray created.");
// populate the array
myArray[0] = "foo";
myArray[1] = "bar";
myArray[2] = "baz";
// retrieval
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
假设代码保存在名为 main.java
的文件中,请使用 java
命令运行它
$ java ./main.java
foo
bar
baz
要创建整数数组,请将数据类型定义为 int
而不是 String
package com.opensource.example;
public class Example {
public static void main(String[] args) {
int[] myArray = { 1, 2, 3 };
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
运行代码
$ java ./main.java
1
2
3
迭代数组
将数据存储在数组中后,您可能打算在某个时候检索它。 查看数组中所有数据的最直接方法是创建一个 for
循环,该循环使用 .length
方法获取数组的长度,然后循环遍历数组的次数等于该长度
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = { "foo", "bar", "baz" };
for (int i=0; i < myArray.length; i++) {
System.out.println(myArray[i]);
}
}
}
运行代码
$ java ./main.java
foo
bar
baz
多维数组
数组不必只是一个简单的列表。 它也可以是列表的列表。 这称为多维数组,只要您将其视为数组的数组,它就非常直观
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[][] myArray = {{ "zombie", "apocalypse" }, { "happy", "halloween" }};
}
}
}
要查看数组的内容,可以使用嵌套的 for
循环。 在一维数组中,您必须获得 myArray
的长度,以便您的 for
循环知道何时停止迭代数组。 这一次,您必须获取 myArray
中每个数组的长度。 为了简单起见,我将这两个数组称为 outer
和 inner
,前者是 myArray
,后者代表每个嵌套数组
int outer = myArray.length;
int inner = myArray[1].length;
一旦您有了这两个长度,您就可以将它们用作 for
循环的限制
for (int i = 0; i < outer; i++) {
for (int j = 0; j < inner; j++) {
System.out.println(myArray[i][j]);
}
}
这是完整的代码示例
package com.opensource.example;
public class Example {
String[][] myArray = {{ "foo", "bar" }, { "baz", "qux" }};
int outer = myArray.length;
int inner = myArray[1].length;
for (int i = 0; i < outer; i++) {
for (int j = 0; j < inner; j++) {
System.out.println(myArray[i][j]);
}
}
}
}
运行代码
$ java ./main.java
zombie
apocalypse
happy
halloween
数据数组
有时,使用 Java 数组比跟踪数十个单独的变量更有意义。 一旦您了解如何在一种语言中构建和检索数据,您就可以以有组织且方便的方式生成复杂数据。
评论已关闭。