Khai báo và khởi tạo mảng 1 chiều (one dimensional array) trong Java

Đây là bài 17/62 bài của series môn học Ngôn ngữ lập trình Java

1. Khái niệm mảng (array)

Đặt vấn đề: Nhập 100 số nguyên, tính giá trị trung bình của chúng và cho biết có bao nhiêu số lớn hơn giá trị trung bình? Không khả thi nếu khai báo 100 biến. Sử dụng một cấu trúc dữ liệu gọi là mảng (array) để lưu 100 số nguyên đó.

Minh họa mảng:

Minh họa mảng trong Java

Khái niệm mảng:

Mảng (array) là một cấu trúc dữ liệu biểu diễn một tập hợp các phần tử cùng kiểu dữ liệu. Trong Java, số lượng các phần tử trong mảng phải được xác định trước và không thay đổi.

2. Khai báo và khởi tạo mảng một chiều

Cú pháp khai báo mảng một chiều:

elementType[] arrayRefVar;
hoặc:
elementType arrayRefVar[];

Trong đó, elementType có thể là kiểu dữ liệu nguyên thủy như int, char, double, byte,… hoặc các lớp (class) trong Java. arrayRefVar là tên mảng, có quy ước đặt tên giống tên biến.

Ví dụ, khai báo một biến mảng myList lưu trữ các phần tử double:

double[] myList;
//hoặc
double myList[];
String[] array;

Nhưng có bao nhiêu phần tử trong mảng?

Để khai báo số phần tử có trong mảng, chúng ta cần phải cấp phát vùng nhớ cho mảng tương ứng với số phần tử mà có thể lưu trữ. Cú pháp:

arrayRefVar = new elementType[arraySize];

Sử dụng từ khóa new để cấp phát vùng nhớ cho mảng. Số vùng nhớ được cấp phát là arraySize, mỗi vùng nhớ có thể lưu trữ một giá trị kiểu elementType. Sau đó, gán mảng vừa tạo vào biến tham chiếu arrayRefVar.

Ví dụ:

myList = new double[10];

myList[0] tham chiếu phần tử đầu tiên của mảng. myList[9] tham chiếu phần tử cuối cùng của mảng.

Có thể khai báo và cấp phát vùng nhớ cho mảng trong một câu lệnh

Cú pháp:

elementType[] arrayRefVar = new elementType[arraySize];
hoặc
elementType arrayRefVar[] = new elementType[arraySize];

Ví dụ:

double[] myList = new double[10];
double myList[] = new double[10];
String[] array = new String[100];

Khởi tạo mảng một chiều

Tức là gán giá trị cho các phần tử trong mảng một chiều. Trong Java, có thể khởi tạo mảng trong lúc khai báo mảng. Ví dụ:

//khai báo và khởi tạo mảng
int[] age = {12, 4, 5, 2, 5};

Ở ví dụ trên, chúng ta tạo ra một mảng tên là age và khởi tạo các phần tử của mảng trong dấu ngoặc nhọn {}. Với cách này, chúng ta không cần khai báo số phần tử trong mảng. Trình biên dịch Java sẽ tự động xác định được số phần tử trong mảng là 5.

Trong Java, mỗi vùng nhớ tương ứng với mỗi phần tử trong mảng được đánh một chỉ mục (index). Chúng ta có thể khởi tạo mảng bằng việc xác định các chỉ mục này. Ví dụ:

//khai báo một mảng
int[] age = new int[5];

//khởi tạo mảng
age[0] = 12;
age[1] = 4;
age[2] = 5;
..
Khởi tạo mảng trong Java

Lưu ý:

Chỉ mục (index) của mảng luôn bắt đầu từ 0. Phần tử đầu tiên trong mảng có index = 0.

Nếu kích thước của mảng là n thì phần tử cuối cùng trong mảng sẽ có index = n-1.

3. Kích thước mảng và giá trị mặc định trong mảng

Khi một mảng được cấp phát, số lượng phần tử mảng là cố định và không thể thay đổi. Để lấy kích thước mảng, chúng ta dùng arrayRefVar.lenght.

Ví dụ, myList.lenght = 10.

Khi một mảng được tạo, giá trị các phần tử mảng được gán một giá trị mặc định: 0 nếu kiểu số, \u0000 nếu kiểu charfalse nếu kiểu boolean.

4. Truy cập các phần tử trong mảng

Các phần tử của mảng được truy cập thông qua chỉ mục (index). Bắt đầu là 0, nghĩa là từ phần tử thứ 0 đến arrayRefVar.length-1.

Ví dụ, myList có 10 phần tử kiểu double có chỉ số từ 0 đến 9.

Cú pháp:

arrayRefVar[index];

Ví dụ:

double[] myList = {2.0, 2.1, 0.0, 1.0, 3.2, 4.5, 9.9, 5.7, 5.8, 1.2};
System.out.println(myList[0]);//2.0

Bài này đã giới thiệu cách khai báo, cấp phát vùng nhớ cho mảng cũng như khởi tạo mảng. Bài sau, chúng ta sẽ tìm hiểu một số kỹ thuật lập trình với mảng 1 chiều trong Java.

Mời bạn đánh giá bài viết
Bài trước và bài sau trong môn học<< Truyền tham trị và tham chiếu cho phương thức trong JavaKỹ thuật lập trình với mảng 1 chiều trong Java >>
Chia sẻ trên mạng xã hội:

Để lại một bình luận

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.