Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu dữ liệu và mỗi phần tử trong mảng được truy xuất thông qua chỉ số của nó trong mảng. Chúng ta sử dụng mảng trong trường hợp muốn lưu trữ nhiều biến tương tự nhau chẳng hạn như danh sách các sinh viên trong một lớp.

Cách khai báo mảng:

<kiểu dữ liệu> <tên mảng>[];
hoặc
<kiểu dữ liệu>[] <tên mảng>;

Ví dụ: String danhSachSinhVien[]; hoặc String[] danhSachSinhVien;

Khai báo cùng lúc nhiều mảng có kiểu dữ liệu giống nhau.
int[] mang1, mang2, mang3;

Khởi tạo mảng

Không giống như trong C, C++ kích thước mảng trong Java được xác định khi khai báo. Để cấp phát bộ nhớ hay nói cách khác là kích thước cho mảng trong Java chúng ta cần dùng từ khóa new. Chẳng hạn để cấp phát vùng nhớ cho mảng gồm 10 số thực trong Java chúng ta khai báo như sau:

double mangSoThuc = new double[10];

Chúng ta có thể khởi tạo giá trị ban đầu cho các phần tử của mảng khi nó được khai báo.
Ví dụ:

int mangSoNguyen[] = {1, 2, 3};
char mangKyTu[] = {‘i’, ‘j’, ‘k’};
String mangChuoi[] = {"Le Van Teo", "Nguyen Van Ti", "Tran Minh Beo"};

Truy cập mảng Chỉ số mảng trong Java bắt đầu tư 0. Vì vậy phần tử đầu tiên có chỉ số là 0, và phần tử thứ n có chỉ số là n-1. Các phần tử của mảng được truy xuất thông qua chỉ số của nó đặt giữa cặp dấu ngoặc vuông ([]).

Ví dụ:

int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.

Lưu ý: Trong nhưng ngôn ngữ lập trình khác (C chẳng hạn), một chuỗi được xem như một mảng các ký tự. Trong java thì khác, java cung cấp một lớp String để làm việc với đối tượng dữ liệu chuỗi cùng khác thao tác trên đối tượng dữ liệu này.

Để lấy chiều dài của mảng chúng ta sử dụng thuộc tính length. 

Cú pháp: <ten mang>.length

Ví dụ:

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3};
        System.out.println(numbers.length);
    }
}

Mảng đa chiều

Khai báo mảng n chiều trong java
<Kiểu dữ liệu>[][]...[] <Tên mảng>;
hoặc
<Kiểu dữ liệu> <Tên mảng> [][]..[] gồm n []

Ví dụ:

int a[][];
int[][] a;

Khởi tạo mảng đa chiều:

<Kiểu dữ liệu> <Tên mảng>[][]...[]= new <Kiểu dữ liệu>[Số phần từ 1][Số phần tử 2].....[Số phần tử n]

Ví dụ: 

int a[][]=new int[2][3];

Cấp phát phần tử cho mảng đa chiều

int a[][]={
                  {3,4},
                  {2,8},
               };

hoặc

a[0][0]=3;
a[0][1]=4;
a[1][0]=2;
a[1][1]=8;

Một số ví dụ về mảng:

Tìm số lớn nhất và nhỏ nhất trong mảng:

public class FindLargestSmallestNumber 
{

    public static void main(String[] args) 
    {
           
        //Mảng 6 chữ số
        int numbers[] = new int[]{1, 5, 9.7, 3, 4};
       
        //-- Tạo biến để lưu trữ giá trị nhỏ nhất và lớn nhất được tìm thấy.
        int smallest = numbers[0];
        int largetst = numbers[0];
       
        for(int i=1; i< numbers.length; i++)
        {
                if(numbers[i] > largetst) 
                {
                    largetst = numbers[i];        
                }
                else if (numbers[i] < smallest) 
                {
                    smallest = numbers[i];
                }
        }
       
        System.out.println("So lon nhat trong mang la : " + largetst);
        System.out.println("So nho nhat trong mang la : " + smallest);
            
    }
}

Sắp xếp mảng

public class SortArray {

    public static void main(String[] args) {
        int[] array_a = {3, 1, 5, 7, 4};
        for (int i = 0; i < array_a.length; i++) {
            for (int j = 0; j <= i; j++) {
                if (array_a[i] <= array_a[j]) {
                    temp = array_a[i];
                    array_a[i] = array_a[j];
                    array_a[j] = temp;
                }
            }
        }
        System.out.println("--------mang da duoc sap xep----------");
        for (int i = 0; i < array_a.length; i++) {
            System.out.print(array_a[i]);
        }
    }
}