Mảng (Array)
1. Khai báo và khởi tạo mảng
Phần tiêu đề “1. Khai báo và khởi tạo mảng”int[] scores = {90, 85, 78, 92}; // khai báo và khởi tạo cùng lúc
int[] numbers = new int[5]; // mảng 5 phần tử int, mặc định đều là 0
String[] names = new String[3]; // mảng 3 phần tử String, mặc định đều là nullKích thước mảng được cố định ngay khi tạo - không thể thay đổi sau đó (muốn danh sách có thể thay đổi kích thước, dùng ArrayList - xem trang tiếp theo).
2. Truy cập và sửa phần tử
Phần tiêu đề “2. Truy cập và sửa phần tử”int[] scores = {90, 85, 78, 92};
System.out.println(scores[0]); // 90 - chỉ số bắt đầu từ 0scores[1] = 100; // sửa phần tử tại vị trí 1System.out.println(scores.length); // 4 - độ dài mảng (không có dấu ngoặc, không phải length())⚠️ Truy cập chỉ số ngoài phạm vi (scores[10] với mảng chỉ có 4 phần tử) sẽ ném ArrayIndexOutOfBoundsException lúc chạy chương trình.
3. Duyệt mảng
Phần tiêu đề “3. Duyệt mảng”int[] scores = {90, 85, 78, 92};
for (int i = 0; i < scores.length; i++) { System.out.println(scores[i]);}
for (int score : scores) { // for-each gọn hơn System.out.println(score);}4. Mảng là kiểu tham chiếu
Phần tiêu đề “4. Mảng là kiểu tham chiếu”Mảng trong Java là một đối tượng - biến mảng là tham chiếu đến vùng nhớ chứa các phần tử:
int[] a = {1, 2, 3};int[] b = a; // b trỏ đến CÙNG mảng với a, không sao chép dữ liệu
b[0] = 100;System.out.println(a[0]); // 100 - a cũng bị ảnh hưởng vì cùng trỏ đến một mảng!Muốn sao chép thật sự (không chia sẻ vùng nhớ), dùng Arrays.copyOf() hoặc clone().
5. Lớp tiện ích java.util.Arrays
Phần tiêu đề “5. Lớp tiện ích java.util.Arrays”import java.util.Arrays;
int[] numbers = {5, 2, 8, 1, 9};
Arrays.sort(numbers); // sắp xếp tăng dần, sửa trực tiếp mảng gốcSystem.out.println(Arrays.toString(numbers)); // [1, 2, 5, 8, 9] - in mảng dễ đọc
int[] copy = Arrays.copyOf(numbers, numbers.length); // sao chép mảngboolean equal = Arrays.equals(numbers, copy); // so sánh nội dung hai mảng⚠️ In trực tiếp một mảng bằng System.out.println(numbers) sẽ ra một chuỗi khó hiểu kiểu [I@1b6d3586 (địa chỉ tham chiếu) - luôn dùng Arrays.toString() để in nội dung mảng.
Tổng kết
Phần tiêu đề “Tổng kết”- Mảng có kích thước cố định, khai báo
<kiểu>[] tên = {...}hoặcnew <kiểu>[kích_thước] - Chỉ số bắt đầu từ 0,
mang.length(không có dấu ngoặc) để lấy độ dài - Mảng là kiểu tham chiếu - gán
b = akhiến cả hai cùng trỏ đến một mảng Arrays.sort(),Arrays.toString(),Arrays.copyOf()là các tiện ích thường dùng nhất