Java 数组

原文:https://www.studytonight.com/java/array.php

数组是相似数据类型的集合。数组是一个容器对象,它保存同类类型的值。它也被称为静态数据结构,因为数组的大小必须在声明时指定。

数组从索引开始,到 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];

Jagged Array

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列每一行都不一样。这种类型的数组称为锯齿状数组