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
Đăng nhận xét