Trong hướng dẫn này, sẽ tìm hiểu về:
  • Mảng là gì?
  • Khai báo và khởi tạo mảng
  • Ví dụ: Tạo mảng đầu tiên
  • Truyền tham chiếu với mảng
  • Mảng đa chiều


Mảng là gì?

Mảng là một kiểu cấu trúc dữ liệu rất phổ biến trong đó tất cả các phần tử thuộc cùng kiểu dữ liệu. Sau khi được tạo, kích thước của một mảng được cố định và không thể tăng để chứa nhiều phần tử hơn. Phần tử đầu tiên của mảng bắt đầu bằng chỉ số 0.
Nói một cách đơn giản, mảng 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;
thành thế này …
x [0] = 0;
x [1] = 1;
x [2] = 2;
x [3] = 3;
x [4] = 4;
x [5] = 5;
Với một biến và chỉ số giúp cho việc làm trên trở lên tốt hơn
for(count=0; count<5; count++) {
     System.out.println(x[count]);
}

Khai báo và khởi tạo

Để sử dụng một mảng trong chương trình, cần làm theo 3 bước như sau
1) Khai báo mảng
2) Xây dựng mảng
3) Khởi tạo mảng

1) Khai báo mảng của bạn
Cú pháp
<elementType>[] <arrayName>;
hoặc là
 <elementType> <arrayName>[];

Ví dụ:
int intArray[];
 // tạo mảng intArray lưu trữ giá trị số nguyên
int []intArray;

2) Xây dựng một mảng
 arrayname = new dataType[]

Ví dụ:
intArray = new int [10]; // Tạo mảng intArray sẽ lưu trữ 10 giá trị số nguyên
Khai báo  và xây dựng mảng
int intArray [] = new int [10];
3) Khởi tạo một mảng
intArray [0] = 1; // Gán một giá trị 1 cho phần tử đầu tiên của mảng

intArray [1] = 2; // Gán một giá trị 2 cho phần tử thứ hai của mảng
Khai báo và khởi tạo một mảng
[] = {};
Ví dụ:
int intArray [] = {1, 2, 3, 4};
// Khởi tạo một mảng số nguyên có độ dài 4 trong đó phần tử thứ nhất là 1, phần tử thứ hai là 2 ...

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

Bước 1) Sao chép 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 kết quả
Kết quả:
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.length sẽ cung cấp cho bạn độ dài của mảng.
Bỏ chú thích ở dòng # 10. Lưu, biên dịch và chạy mã. Quan sát kết quả
Length of Array  =  7
Bước 4) 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ỏ chú thích dòng # 11. Lưu, biên dịch và chạy mã. Quan sát kết quả
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1
Bước 5) Array IndexOutOfBoundException được ném. 

Truyền tham chiếu

Mảng được truyền cho các hàm theo dạng truyền tham chiếu. Đ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 hàm đều ảnh hưởng đến giá trị nguồn.
Ví dụ: Để hiểu Array đượ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:
Before Function Call    Apple
After Function Call    Changed

Mảng nhiều chiều

Mảng nhiều chiều thực chất là mảng của mảng.
Để khai báo một biến mảng nhiều chiều
Ví dụ: int twoD[ ][ ] = new int[4][5] ;

Khi bạn cấp phát bộ nhớ cho một mảng nhiều chiều, bạn chỉ cần xác định bộ nhớ cho chiều đầu tiên.
Bạn có thể cấp phát các kích thước còn lại một cách riêng biệt.
Trong Java, độ dài mảng của mỗi mảng trong một mảng nhiều chiều nằm dưới sự kiểm soát của bạn.

Ví dụ
public class CodeLean {
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:
1


Post a Comment

Mới hơn Cũ hơn