如何在Java中定义和处理数组数据结构。
数组是Java对象的一种特殊形式,用于存储元素的同构列表(向量的每个元素都具有与向量类型相同的类型— 基元数据类型。
数组中元素的数目是固定的,它定义了数组的长度。
从语法和逻辑的角度来看,java中的数组与C或C++中的数组是相同的。实现上有差异,但对程序员来说是透明的,我们不会注意到它们:
在Java中,数组是一种特殊的对象,array类的实例;
Java允许使用索引操作符[],来访问数组元素;
[]
new运算符(用于构建对象和在堆中分配空间)接受数组大小作为参数;
因为数组是对象,程序员可以访问属性 length来获得数组大小(比C或C++更大的优势,因为我们不再需要用另一个变量来管理它的大小);
在Java中定义数组的语法:
base_type[] array_name;
base_type array_name[];
//类似于C/C++的风格
重要根据定义,array_name是一个未初始化的类型引用(指针)变量,默认值为null。null是一个Java关键字,表示一个不存在的地址,其值等于0。
// 使用Java的推荐语法定义数组
int
[] intValues ;
// 使用 C/C++ 类型的语法定义数组
long
longValues[];
因为它们是对象,所以数组值存储在堆中(具有动态分配的RAM内存区域,在该区域中进程可以在运行时保留空间),一个数组按3个步骤初始化:
(可选,因为在内存分配过程中,元素会得到与数组 基元数据类型相关联的默认值——对于基元数据类型检查和引用,默认值为 null
在本教程中,将用基元值来分析数组,在我们看到类和对象相关的概念之后,我们将分析对象数组。
// 使用Java推荐的语法定义数组
[] intValues;
//分配空间-数组初始化
intValues =
new
[
10
];
// 10 个元素,值都为 0
longValues =
5
//5 个元素,值都为 0
单独的元素的初始化可以使用运算符[]。( 注意!用于访问元素的索引的值在[0,length-1]直接)
intValues [
0
] =
;
// 初始化第1个元素
1
20
// 初始化第2个元素
2
30
// 初始化第3个元素
如果我们知道数组的值,则可以通过一条指令执行对象实例化和初始化:
base_type[] array_name = {value1, value2, …, valueN);
例如:
//分配空间+定义+初始化
// 具有char数据类型值的五个元素的数组
char
[] charValues = {
'H'
,
'e'
'l'
'o'
};
访问数组元素可以使用[]运算符。注意用于访问元素的索引只能是[0,length-1]之间的值。
数组中的项数是通过访问其属性 length来确定的(在Java中,数组是array类型的对象)。
// 查看数组的长度
charNumber = charValues.length;
// 修改第1个元素的数值
charValues[
下面的示例使用1到10的值初始化数组元素,然后在控制台上打印它们。
[] intValues =
for
(
i=
;i < intValues.length;i++)
intValues[i] = i+
//enhanced for
value:intValues)
System.out.println(value);
注意用于访问元素的索引只能是[0,length-1]之间的值。否则会出现运行时异常,如 ArrayIndexOutOfBoundsException:
charValues [
'!'
运行时报错:
Exception in thread
"main"
java.lang.ArrayIndexOutOfBoundsException:
原文链接:https://codingdict.com/