Tiếng Việt - Mảng (Arrays)

Chào mừng, các nhà lập trình nhân tạo! Hôm nay, chúng ta sẽ bơi lội vào thế giới thú vị của mảng trong Java. Là người giáo viên khoa học máy tính xinh đẹp của khu phố, tôi sẽ hướng dẫn bạn qua khái niệm cơ bản này, nó sẽ trở thành công cụ quan trọng trong bộ công cụ lập trình của bạn.

Java - Arrays

Mảng là gì trong Java?

Hãy tưởng tượng bạn đang lên kế hoạch cho một buổi tiệc sinh nhật và cần theo dõi danh sách khách mời của mình. Thay vì viết tên mỗi người trên một tờ giấy khác nhau, có lẽ nó sẽ dễ dàng hơn nếu bạn có một danh sách duy nhất chứa tất cả các tên đó? Đó chính là điều mà mảng làm trong lập trình!

Một mảng trong Java là một container chứa một số lượng cố định của các giá trị cùng một loại. Hãy tưởng tượng nó như một hàng các hộp, mỗi hộp chứa một món hàng cùng loại.

Khai báo Biến Mảng

Hãy bắt đầu với những điều cơ bản. Để khai báo biến mảng, chúng ta sử dụng dấu ngoặc vuông []:

int[] numbers;
String[] names;

Ở đây, chúng ta đã khai báo hai biến mảng: một để chứa các số nguyên và một để chứa các chuỗi ký tự.

Tạo Mảng

Bây giờ, hãy tạo các mảng của chúng ta:

int[] numbers = new int[5];
String[] names = {"Alice", "Bob", "Charlie", "David", "Eve"};

Trong dòng đầu tiên, chúng ta đang tạo một mảng có thể chứa 5 số nguyên. Trong dòng thứ hai, chúng ta đang tạo và khởi tạo một mảng chuỗi ký tự trong một lần.

Xử lý Mảng

Hãy xem cách chúng ta có thể làm việc với mảng:

int[] scores = {85, 90, 78, 88, 92};

// Truy cập các phần tử
System.out.println("Điểm đầu tiên: " + scores[0]);  // Xuất: 85
System.out.println("Điểm thứ ba: " + scores[2]);  // Xuất: 78

// Chỉnh sửa các phần tử
scores[1] = 95;
System.out.println("Điểm thứ hai đã cập nhật: " + scores[1]);  // Xuất: 95

// Độ dài mảng
System.out.println("Số điểm: " + scores.length);  // Xuất: 5

Nhớ rằng, chỉ số mảng bắt đầu từ 0, không phải 1. Đó là lỗi phổ biến của người mới bắt đầu, nhưng bạn sẽ quen với nó!

Vòng lặp foreach với Mảng

Java cung cấp cách viết gọn gàng để lặp qua mảng sử dụng vòng lặp foreach:

String[] fruits = {"Apple", "Banana", "Cherry", "Date"};

for (String fruit : fruits) {
    System.out.println("Tôi thích " + fruit);
}

Vòng lặp này sẽ in ra:

Tôi thích Apple
Tôi thích Banana
Tôi thích Cherry
Tôi thích Date

Đó có tệ hơn một vòng lặp truyền thống không?

Truyền Mảng vào Phương thức

Mảng có thể được truyền vào phương thức như bất kỳ biến nào khác:

public static void printArray(int[] arr) {
    for (int num : arr) {
        System.out.print(num + " ");
    }
    System.out.println();
}

public static void main(String[] args) {
    int[] myArray = {1, 2, 3, 4, 5};
    printArray(myArray);  // Xuất: 1 2 3 4 5
}

Trả về Mảng từ Phương thức

Phương thức cũng có thể trả về mảng:

public static int[] createArray(int size) {
    return new int[size];
}

public static void main(String[] args) {
    int[] newArray = createArray(5);
    System.out.println("Độ dài mảng: " + newArray.length);  // Xuất: 5
}

Lớp Arrays

Java cung cấp một lớp tiện ích có tên là Arrays chứa các phương thức khác nhau để thao tác với mảng. Dưới đây là một số phương thức thường được sử dụng:

Phương thức Mô tả
Arrays.sort(arr) Sắp xếp mảng
Arrays.binarySearch(arr, key) Tìm kiếm phần tử cụ thể
Arrays.fill(arr, val) Điền mảng với giá trị cụ thể
Arrays.toString(arr) Trả về chuỗi đại diện của mảng

Hãy xem những phương thức này hoạt động:

import java.util.Arrays;

public class ArraysClassDemo {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9};

        // Sắp xếp
        Arrays.sort(numbers);
        System.out.println("Mảng đã sắp xếp: " + Arrays.toString(numbers));
        // Xuất: Mảng đã sắp xếp: [1, 2, 5, 8, 9]

        // Tìm kiếm nhị phân
        int index = Arrays.binarySearch(numbers, 5);
        System.out.println("Chỉ số của 5: " + index);  // Xuất: 2

        // Điền
        int[] filledArray = new int[5];
        Arrays.fill(filledArray, 7);
        System.out.println("Mảng đã điền: " + Arrays.toString(filledArray));
        // Xuất: Mảng đã điền: [7, 7, 7, 7, 7]
    }
}

Và thế là xong! Bạn vừa bước đi đầu tiên vào thế giới của mảng Java. Nhớ rằng, luyện tập sẽ làm bạn hoàn hảo. Hãy thử tạo các loại mảng khác nhau, thao tác chúng và sử dụng chúng trong các chương trình của bạn. Trước khi bạn biết, bạn sẽ trở thành một phù thủy mảng!

Khi kết thúc, tôi nhớ lại một học sinh nói rằng mảng như một hộp sô-cô-la - bạn không biết bạn sẽ nhận được gì cho đến khi bạn mở nó lên (hoặc trong trường hợp của chúng ta, in chúng ra). Chúc mừng mã nguồn, các nhà lập trình tương lai!

Credits: Image by storyset