16. Java 如何创建、初始化和访问数组

16. Java 如何创建、初始化和访问数组

在 Java 中,数组是一种数据结构,它可以存储多个相同类型的数据。创建、初始化和访问数组的过程非常简单,下面我将详细解释如何进行这些操作。


1️⃣ 创建数组

创建数组的一种常见方法是使用 new 运算符来分配内存空间。例如:

java 复制代码
int[] anArray = new int[10];

在这个例子中,new int[10] 创建了一个包含 10 个整数的数组,并将其分配给变量 anArray。数组的大小一旦确定,就不能再更改。


2️⃣ 初始化数组元素

可以通过数组的索引来访问每个元素,数组的索引从 0 开始。例如:

java 复制代码
anArray[0] = 100;  // 初始化第一个元素
anArray[1] = 200;  // 初始化第二个元素
anArray[2] = 300;  // 初始化第三个元素
// 继续初始化其他元素

然后,你可以通过索引访问和打印这些元素的值:

java 复制代码
System.out.println("Element at index 0: " + anArray[0]);
System.out.println("Element at index 1: " + anArray[1]);
System.out.println("Element at index 2: " + anArray[2]);

输出结果将是:

java 复制代码
Element at index 0: 100
Element at index 1: 200
Element at index 2: 300

3️⃣ 使用简化语法进行初始化

你也可以在声明数组的同时直接初始化它的值,而不必一一赋值。例如:

java 复制代码
int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

在这个例子中,数组 anArray 被初始化为 10 个元素。数组的大小由提供的值的数量决定(在这里是 10 个)。


4️⃣ 多维数组

Java 支持多维数组,实际上多维数组是数组的数组。例如:

java 复制代码
String[][] names = {
    {"Mr. ", "Mrs. ", "Ms. "},
    {"Smith", "Jones"}
};

在上面的例子中,names 是一个二维数组,包含两个数组:第一个数组包含 3 个元素,第二个数组包含 2 个元素。

访问和打印数组元素:

java 复制代码
System.out.println(names[0][0] + names[1][0]);  // 输出 Mr. Smith
System.out.println(names[0][2] + names[1][1]);  // 输出 Ms. Jones

输出结果为:

java 复制代码
Mr. Smith
Ms. Jones

5️⃣ 获取数组的长度

每个数组都有一个内置的属性 length,可以用来获取数组的大小(即数组中元素的个数)。例如:

java 复制代码
System.out.println(anArray.length);  // 输出数组的大小

如果数组的大小是 10,则 anArray.length 的值将为 10


总结

  • 创建数组 :通过 new 运算符创建指定大小的数组。
  • 初始化数组:可以通过索引来手动赋值,也可以在声明时使用简化语法进行初始化。
  • 访问数组 :使用索引来访问数组的元素,索引从 0 开始。
  • 多维数组:Java 支持多维数组,每个维度可以是数组类型,并且允许"锯齿形"结构。
  • 数组长度 :每个数组都有一个 length 属性,表示数组中元素的个数。

通过掌握这些基础操作,你可以高效地使用数组来管理和操作数据。

相关推荐
woniu_maggie1 分钟前
SAP DOI EXCEL&宏的使用
后端·excel
二两小咸鱼儿1 小时前
Java Demo - JUnit :Unit Test(Assert Methods)
java·后端·junit
字节源流1 小时前
【spring】配置类和整合Junit
java·后端·spring
跪在镜子前喊帅1 小时前
【面试】Java 多线程
java·面试
好看资源平台2 小时前
Java/Kotlin逆向基础与Smali语法精解
java·开发语言·kotlin
zimoyin2 小时前
解决 Java/Kotlin 资源加载问题
java·python·kotlin
zhuyasen2 小时前
Go语言配置解析:基于viper的conf库优雅解析配置文件
后端·go
2a3b4c3 小时前
读取 Resource 目录下文件内容
后端
Asthenia04123 小时前
NIO:Buffer对象均是在Jvm堆中分配么?听说过DirectByteBuffer和MappedByteBuffer么?
后端
阿木看源码3 小时前
bindingAdapter的异常错误
java·开发语言