Java 数组

数组是一种非常常见的数据结构类型,其中所有元素必须具有相同的数据类型。一旦定义后,数组的大小是固定的,并且不能增加以容纳更多元素。数组的第一个元素的索为零。

简单来说,数组是一个可以替代下面代码的编程结构,

x0=0;
x1=1;
x2=2;
x3=3;
x4=4;
x5=5;

用了数组后,

x[0]=0;
x[1]=1;
x[2]=2;
x[3]=3;
x[4]=4;
x[5]=5;

这变量可以用索引(括号 [ ] 中的数字)以便于循环。

for(count=0; count<5; count++) {
     System.out.println(x[count]);
   }

数组变量

在程序中使用数组的步骤 -

  1. 声明数组
  2. 构建数组
  3. 初始化数组

1. 声明数组

语法

<elementType>[] <arrayName>;

或者,

 <elementType> <arrayName>[];

举例如下,

int intArray[];
 //Defines that intArray is an ARRAY variable which will store integer values
int []intArray;

2. 构建数组

 arrayname = new dataType[]

比如,

intArray = new int[10]; //Defines that intArray will store 10 integer values

合并声明和构建

int intArray[] = new int[10];

3. 初始化数组

intArray[0]=1; //Assigns an integer value 1 to the first element 0 of the array
intArray[1]=2; //Assigns an integer value 2 to the second element 1 of the array

声明并初始化数组

 <elementType> []  = {...};

例:

int intArray[] = {1, 2, 3, 4};
//Initilializes an integer array of length 4 where the first element is 1 , second element is 2 and so on.

Java 数组示例

class ArrayDemo{
     public static void main(String args[]){
        int array[] = new int[7];
        for (int count=0;count<7;count++){
           array[count]=count+1;
       }
       for (int count=0;count<7;count++){
           System.out.println("array["+count+"] = "+array[count]);
       }
      //System.out.println("Length of Array  =  "+array.length);
      //array[8] =10;
      }
}

保存、编译和运行代码。观察输出

输出:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

如果 x 是对数组的引用,x.length 将给出数组的长度。

取消注释行

 //System.out.println("Length of Array  =  "+array.length);

保存、编译和运行代码。观察输出

Length of Array  =  7

与 C 语言不同,Java 在访问数组时检查数组的边界。Java 不允许索引超越其边界。

取消程序中下面的注释,

//array[8] =10;

保存、编译和运行代码。观察输出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

它抛出 ArrayIndexOutOfBoundsException 错误。在 C 语言中,相同的代码将显示一些垃圾值。

Java 数组 - 传递引用

数组通过引用传递给函数,或作为指向原始的指针。这意味着你对函数内部所做的任何操作都会影响原始函数。

示例:了解数组是通过引用传递的

class ArrayDemo {
   public static void passByReference(String a[]){
     a[0] = "Changed";
   }
 
   public static void main(String args[]){
      String []b={"Apple","Mango","Orange"};
      System.out.println("Before Function Call    "+b[0]);
      ArrayDemo.passByReference(b);
      System.out.println("After Function Call    "+b[0]);
   }
}

保存、编译和运行代码。观察输出

输出:

Before Function Call    Apple
After Function Call    Changed

多维数组

多维数组实际上是数组的数组。

要声明多维数组变量,请使用另一组方括号指定每个附加索引。

int twoD[ ][ ] = new int[4][5] ;

为多维数组分配内存时,只需指定第一个(最左侧)维的内存。你可以单独分配剩余的数组大小。

在 Java 中,多维数组中每个数组的数组长度由你控制。

public class Tastones {
    public static void main(String[] args) {
    //Create 2-dimensional array.
      int[][] twoD = new int[4][4];
      //Assign three elements in it.
      twoD[0][0] = 1;
      twoD[1][1] = 2;
      twoD[3][2] = 3;
      System.out.print(twoD[0][0] + " ");
    }
}

输出:

1