Java 数组
数组是相似数据类型的集合。数组是一个容器对象,它保存同类类型的值。它也被称为静态数据结构,因为数组的大小必须在声明时指定。
数组从零索引开始,到 n-1 ,其中 n 为数组的长度。
在 Java 中,数组被视为一个对象,存储到堆内存中。它允许存储原始值或参考值。
在 Java 中,数组可以是一维的,也可以是多维的。
数组的特征
- 它总是被索引。索引从 0 开始。
- 它是相似数据类型的集合。
- 它占用一个连续的内存位置。
- 它允许随机访问元素。
一维数组
一维数组使用单个索引存储元素。只要将数组的索引增加 1,就可以得到数组的所有元素。
数组声明
语法:
datatype[] *arrayName;*;
or
**datatype** arrayName[];
Java 允许通过使用两种声明语法来声明数组,两者都是有效的。
数组名可以是任何有效的数组名,数据类型可以是任何类型: int、float、byte 等。
示例:
int[ ] arr;
char[ ] arr;
short[ ] arr;
long[ ] arr;
int[ ][ ] arr; // two dimensional array.
数组的初始化
初始化是一个为数组分配内存的过程。在初始化时,我们指定数组的大小来保留内存区域。
初始化语法
arrayName = new datatype[size]
new
运算符用于初始化数组。
arrayName 是数组的名称,new 是用于分配内存的关键字,size 是数组的长度。
我们可以将声明和初始化合并在一条语句中。
Datatype[] arrayName = new datatype[size]
示例:创建数组
让我们创建一个一维数组。
class Demo
{
public static void main(String[] args)
{
int[] arr = new int[5];
for(int x : arr)
{
System.out.println(x);
}
}
}
0 0 0 0 0
在上面的例子中,我们创建了一个数组arr**int 类型并且可以存储 5 元素。我们迭代数组来访问它的元素,它向控制台输出五次零。它打印零是因为我们没有给数组设置值,所以数组的所有元素默认初始化为 0。**
设置数组元素
我们可以在初始化时设置数组元素,也可以直接给它的索引赋值。
int[] arr = {10,20,30,40,50};
这里,我们在创建数组时赋值。当我们想要将静态数据存储到数组中时,它非常有用。
或者
arr[1] = 105
这里,我们给数组的 1 索引赋值。当我们想要将动态数据存储到数组中时,它非常有用。
数组示例
在这里,我们使用上面讨论的两种方法为数组赋值。
class Demo
{
public static void main(String[] args)
{
int[] arr = {10,20,30,40,50};
for(int x : arr)
{
System.out.println(x);
}
// assigning a value
arr[1] = 105;
System.out.println("element at first index: " +arr[1]);
}
}
第一个索引处的元素:105
访问数组元素
我们可以通过数组的索引值来访问数组元素。通过使用循环或直接索引值。我们可以使用循环,如:for、for-each 或 while 来遍历数组元素。
访问元素的示例
class Demo
{
public static void main(String[] args)
{
int[] arr = {10,20,30,40,50};
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
System.out.println("element at first index: " +arr[1]);
}
}
第一个索引处的元素:20
这里,我们使用循环遍历数组元素,并随机访问一个元素。
注:- 要求数组的长度,可以使用数组对象的 length 属性,如:array_name.length
。
多维数组
多维数组与一维数组非常相似。它可以有多行多列,不像一维数组只能有一个行索引。
它将数据表示为表格形式,在表格形式中,数据存储在行和列中。
多维数组声明
datatype[ ][ ] arrayName;
数组初始化
datatype[ ][ ] arrayName = new int[no_of_rows][no_of_columns];
arrayName 是数组的名称, new 是用于分配内存的关键字,no of rows 和 no_of_columns 都用于设置行列大小元素。
像一维数组一样,我们也可以静态初始化多维数组。
int[ ][ ] arr = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
示例:
class Demo
{
public static void main(String[] args)
{
int arr[ ][ ] = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
for(int i=0;i<3;i++)
{
for (int j = 0; j < 5; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
// assigning a value
System.out.println("element at first row and second column: " +arr[0][1]);
}
}
第一行第二列的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 元素:2
交错数组
交错数组是具有不同列元素数量的数组。在 java 中,交错数组意味着多维数组中的列大小不均匀。
锯齿数组的初始化
参差不齐的数组初始化是不同的小不同。我们必须独立设置每行的列大小。
int[ ][ ] arr = new int[3][ ];
arr[0] = new int[3];
arr[1] = new int[4];
arr[2] = new int[5];
Example : Jagged Array
class Demo
{
public static void main(String[] args)
{
int arr[ ][ ] = {{1,2,3},{4,5},{6,7,8,9}};
for(int i=0;i<3;i++)
{
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
1 2 3 4 5 6 7 8 9
这里我们可以看到行的数量为 3 ,列每一行都不一样。这种类型的数组称为锯齿状数组。