Mảng trong Java

Là gì Java Mảng?

Java Mảng là một kiểu cấu trúc dữ liệu rất phổ biến chứa tất cả các giá trị dữ liệu của cùng một kiểu dữ liệu. Các mục dữ liệu được đặt trong mảng được gọi là phần tử và phần tử đầu tiên trong mảng bắt đầu bằng chỉ số 0. Mảng kế thừa lớp đối tượng và triển khai các giao diện có thể tuần tự hóa và nhân bản. Chúng ta có thể lưu trữ các giá trị hoặc đối tượng nguyên thủy trong một mảng.

Nói một cách đơn giản, đó là một cấu trúc lập trình giúp thay thế điều này

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

Với cái này …

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

điều này hữu ích như thế nào là một biến có thể tham chiếu chỉ mục (số trong dấu ngoặc []) để dễ dàng lặp.

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

Các loại Mảng trong Java

Có hai loại mảng.

  1. Mảng một chiều
  2. Mảng đa chiều

Biến mảng

Sử dụng một mảng trong chương trình của bạn là một Quy trình 3 bước

1) Khai báo mảng của bạn

2) Xây dựng mảng của bạn

3) Khởi tạo mảng của bạn

1) Khai báo mảng của bạn

cú pháp

<elementType>[] <arrayName>;

or

 <elementType> <arrayName>[];

Ví dụ:

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

2) Xây dựng một mảng

 arrayname = new dataType[]

Ví dụ:

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

Tuyên bố và Xây dựng kết hợp

int intArray[] = new int[10];

3) Khởi tạo một mảng

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

Khai báo và khởi tạo một mảng

[]  = {};
Ví dụ:
 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.

Chương trình mảng đầu tiên

Bước 1) Sao chép đoạn mã sau vào trình soạn thảo.

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;
      }
}

Bước 2) Lưu, biên dịch và chạy mã. Quan sát đầu ra

Đầu ra mong đợi:

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

Bước 3) Nếu x là một tham chiếu đến một mảng, x.độ dài sẽ cung cấp cho bạn độ dài của mảng.

Bỏ ghi chú dòng #10. Lưu, biên dịch và chạy mã. Quan sát kết quả đầu ra

Length of Array  =  7

Bước 4) Không giống như C, Java kiểm tra ranh giới của một mảng trong khi truy cập một phần tử trong đó. Java sẽ không cho phép lập trình viên vượt quá ranh giới của nó.

Bỏ ghi chú dòng #11. Lưu, biên dịch và chạy mã. Quan sát kết quả đầu ra

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

Bước 5) ArrayIndexOutOfBoundsException được ném ra. Trong trường hợp C, mã tương tự sẽ hiển thị một số giá trị rác.

Java Mảng: Truyền theo tham chiếu

Mảng được truyền tới các hàm bằng cách tham chiếu hoặc dưới dạng một con trỏ tới
bản gốc. Điều này có nghĩa là bất cứ điều gì bạn làm với Mảng bên trong
chức năng ảnh hưởng đến bản gốc.

Ví dụ: Để hiểu Mảng được truyền bằng tham chiếu

Bước 1) Sao chép mã sau vào trình soạn thảo

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]);
   }
}

Bước 2) Lưu, biên dịch và chạy mã. Quan sát đầu ra

Đầu ra mong đợi:

Before Function Call    Apple
After Function Call    Changed

Mảng đa chiều

Mảng nhiều chiều thực chất là mảng của các mảng.

Để khai báo một mảng nhiều chiều biến, chỉ định mỗi chỉ mục bổ sung bằng cách sử dụng một bộ dấu ngoặc vuông khác.

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

Khi cấp phát bộ nhớ cho mảng nhiều chiều, bạn chỉ cần chỉ định bộ nhớ cho chiều đầu tiên (ngoài cùng bên trái).

Bạn có thể phân bổ riêng các kích thước còn lại.

In Java, độ dài mảng của từng mảng trong mảng nhiều chiều nằm trong tầm kiểm soát của bạn.

Ví dụ

public class Guru99 {
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] + " ");
}

}

Đầu ra mong đợi:

1