Giới thiệu
Trong quá trình lập trình, chúng ta thường muốn lưu trữ nhiều giá trị cùng một loại dữ liệu vào một biến nhất định. Để giải quyết vấn đề này, chúng ta sử dụng mảng. Trên thực tế, mảng là một tập hợp các đối tượng có cùng kiểu dữ liệu và được lưu trữ gần nhau trong bộ nhớ. Trong bài viết này, chúng ta sẽ tìm hiểu một số khái niệm cơ bản về mảng trong Java.
Mảng là gì?
Mảng là một tập hợp các đối tượng có cùng kiểu dữ liệu và được lưu trữ gần nhau trong bộ nhớ. Mỗi đối tượng được gọi là một phần tử và được phân biệt thông qua chỉ số phần tử, bắt đầu từ vị trí 0.
Việc sử dụng mảng giúp chúng ta lưu trữ những giá trị có liên quan với nhau. Ví dụ, khi muốn lưu trữ điểm kiểm tra của 30 học sinh trong lớp, chúng ta chỉ cần viết vị trí của học sinh đó trong danh sách.
Ưu nhược của mảng
Ưu điểm:
- Tối ưu code: Gom các phần tử liên quan vào chung một biến giúp code gọn gàng hơn.
- Truy cập ngẫu nhiên: Do các phần tử được lưu trữ liên tiếp, ta có thể truy cập ngẫu nhiên bằng chỉ số phần tử dễ dàng và nhanh chóng.
- Dễ thao tác, quản lý và nâng cấp: Chúng ta có thể thay đổi các giá trị theo quy luật đã định sẵn bằng cách sử dụng các vòng lặp lập trình.
Nhược điểm:
- Giới hạn kích thước: Khi sử dụng mảng, chúng ta phải khai báo kích thước lưu trữ của mảng và không thể thay đổi kích thước trong quá trình chạy.
- Vùng lưu trữ phải liên tiếp: Điều này có thể là ưu hoặc nhược điểm. Bởi vì yêu cầu các ô nhớ phải liên tiếp, chúng ta sẽ phải tốn không gian bộ nhớ hoặc không thể khai báo mảng nếu không đủ ô nhớ liên tiếp.
Cấu trúc của mảng
Mảng 1 chiều
Cú pháp khai báo mảng:
[] ;
Cú pháp cấp phát bộ nhớ để tạo mảng:
= new [kích cỡ mảng];
Hoặc cú pháp rút gọn hơn:
[] = new [kích cỡ mảng];
Ví dụ: Khai báo một mảng có 3 phần tử và gán giá trị cho các phần tử.
public class HelloWorld {
public static void main(String[] args) {
int[] a;
a = new int[3];
a[0] = 5;
a[1] = 2;
a[2] = 1;
System.out.println(a);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
Trong ví dụ trên, chúng ta sử dụng thuộc tính a.length
để biết kích thước của mảng. Điều này giúp chúng ta sử dụng vòng lặp for một cách dễ dàng.
Cú pháp khởi tạo cho mảng:
[] = {, ...};
Ví dụ:
public class HelloWorld {
public static void main(String[] args) {
char[] a = {'H', 'o', 'w', 'K', 't', 'e', 'a', 'm'};
System.out.print(a);
}
}
Đối với kiểu dữ liệu char, chúng ta có thể in ra toàn bộ giá trị bằng cách sử dụng lệnh print trực tiếp.
Mảng đa chiều
Mảng đa chiều được sử dụng để lưu trữ các giá trị có tính tương đồng. Thường thì chúng ta sẽ sử dụng mảng 2 chiều, và trong ma trận 2 chiều, chúng ta gọi chiều thứ nhất là hàng và chiều thứ hai là cột.
Cú pháp khai báo:
[][] = new [kích cỡ hàng][kích cỡ cột];
Cú pháp khởi tạo:
[][] = {{các giá trị hàng 1}, {các giá trị hàng 2}, ... {các giá trị hàng n}};
Ví dụ: Tạo ma trận 3 hàng 2 cột và in các giá trị theo hàng và cột.
public class HelloWorld {
public static void main(String[] args) {
int[][] a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
Lưu ý
Trong Java, chúng ta có thể khai báo mảng theo hai cách: int[] a
hoặc int a[]
. Chức năng của cả hai cách đều giống nhau, do đó các bạn có thể sử dụng cách nào tùy ý. Tuy nhiên, theo khuyến nghị, chúng ta nên sử dụng cách đầu tiên để viết code.
Kết
Như vậy, chúng ta đã tìm hiểu về mảng trong Java. Trong bài viết tiếp theo, chúng ta sẽ giới thiệu vòng lặp for-each trong Java. Hãy tiếp tục theo dõi để trang bị thêm kiến thức lập trình Java!
Cảm ơn các bạn đã đọc bài viết này. Hãy để lại bình luận hoặc góp ý để chúng tôi có thể phát triển bài viết tốt hơn. Đừng quên "Luyện tập - Thử thách - Không ngại khó".
Thảo luận
Nếu bạn gặp khó khăn hoặc có bất kỳ câu hỏi nào về khóa học, đừng ngần ngại để lại bình luận bên dưới hoặc truy cập mục HỎI & ĐÁP trên thư viện Howkteam.com để được hỗ trợ từ cộng đồng.