Mảng trong Java – Java Arrays | Lập Trình Từ Đầu

1. Mảng trong Java là gì?

Trong Java cũng như các ngôn ngữ lập trình khác, mảng là kiểu dữ liệu có cấu trúc gồm một tập hợp cố định các phần tử có cùng kiểu dữ liệu. Các phần tử của mảng có cùng tên và được phân biệt nhau bởi chỉ số. Chỉ số của phần tử đầu tiên là 0. Mỗi phần tử của mảng được sử dụng như là một biến đơn. Kiểu dữ liệu của mảng chính là kiểu dữ liệu của phần tử.

Một khi đã định nghĩa, kích thước của một mảng là cố định và không thể tăng để chứa thêm phần tử. Vì vậy khi làm việc và sử dụng mảng ta phải quan tâm đến một số thành phần sau:

  • Thông tin của mảng như tên, kiểu dữ liệu, số phần tử trong mảng,…
  • Số chiều của mảng( tìm hiểu ở bài sau)

Nói một cách đơn giản là nó sẽ giúp ta giải quyết vấn đề sau:

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

Thay vì phải khai báo nhiều biến chiếm nhiều bộ nhớ. Ta khai báo như thế này:

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

Điều này sẽ giúp chúng ta có thể dễ dàng lặp qua các phần tử của biến đó với chỉ số index (số ở giữa dấu ngoặc vuôn [])

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

2. Khai báo một biến mảng trong Java

Để sử dụng một mảng trong một chương trình, ta phải khai báo một biến để tham chiếu mảng. Ta phải xác định kiểu mảng mà biến có thể tham chiếu. Dưới đây là cú pháp để khai báo một biến mảng:

C1 : <kiểu dữ liệu> <tên mảng>[];

C2 : <kiểu dữ liệu>[] <tên mảng>;

Trong đó C2 là cách được sử dụng phổ biến hơn. Còn C1 xuất phát từ ngôn ngữ C/C++ và được chấp nhận trong Java. Và dù dùng cách nào ta phải xác định kiểu biến bằng dấu ngoặc vuông.

Ví dụ

Ta có biến mảng sau : String[] cars;

Bây giờ chúng ta đã khai báo một biến chứa một mảng chuỗi. Để chèn các giá trị vào nó, chúng ta có thể sử dụng một ký tự mảng – đặt các giá trị trong danh sách được phân tách bằng dấu phẩy, bên trong dấu ngoặc nhọn:

String[] cars = {"Honda", "BMW", "Ford", "Vinfast"};

Hoặc ta có một mảng số nguyên : int[] myNum = {10, 20, 30, 40};

3. Truy cập và thay đổi phần tử của mảng trong Java

Ta sẽ truy cập một phần tử mảng bằng cách tham chiếu đến số chỉ mục (index). Số chỉ mục của  mảng bắt đầu bằng 0 . Tức là [0] là phần tử đầu tiên. [1] là phần tử thứ hai,…

Ví dụ:

class Main {
  public static void main(String[] args) {
    String[] cars = {"Vinfast", "BMW", "Ford", "Mazda"};
    System.out.println(cars[0]);
  }
}

Kết quả

Vinfast

Còn để thay đổi phần tử trong mảng ta cũng chỉ cần tham chiếu đến số chỉ mục và gán trực tiếp cho nó một giá trị mới.

Ví dụ:

public class Main {
  public static void main(String[] args) {
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    cars[0] = "Vinfast";
    System.out.println(cars[0]);
  }
}

Kết quả

Vinfast

4. Độ dài một mảng trong Java

Để biết một mảng có bao nhiêu phần tử hay độ dài của mảng ta sử dụng thuộc tính length .

Ví dụ:

class Main {
  public static void main(String[] args) {
    String[] cars = {"Vinfast", "BMW", "Ford", "Mazda"};
    System.out.println(cars.length);
  }
}

Kết quả

4

5. Sắp xếp mảng trong Java

Có nhiều phương thức mảng có sẵn để sắp xếp một mảng trong Java. Ví dụ Sort() sẽ sắp xếp một mảng theo thứ tự bảng chữ cái hoặc theo thứ tự tăng dần hoặc sử dụng vòng lặp for …

Ví dụ:

import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        String[] cars = { "Honda", "BMW", "Ford", "Mazda" };
        // sap xep mangr cars theo thu tu tang dan
        Arrays.sort(cars);
        System.out.println("Mảng cars sau khi được sắp xếp:");
        for (String car : cars) {
            System.out.println(car);
        }
    }
}

Kết quả

Mảng cars sau khi được sắp xếp:
BMW
Ford
Honda
Mazda

6. Sao chép một mảng trong Java

Chúng ta có thể sao chép một mảng tới mảng khác bởi phương thức arraycopy của lớp System .

Ví dụ:

public class Main {
    public static void main(String[] args) {
        char[] copyFrom = { 'd', 'e', 'l', 'a', 'p', 
                't', 'r', 'i', 'n', 'h', 'j', 'a', 'v', 'a'};
        char[] copyTo = new char[8];
 
        System.arraycopy(copyFrom, 2, copyTo, 0, 8);
        System.out.println(new String(copyTo));
    }
}

Kết quả

laptrinh