Cấu trúc dữ liệu Mảng
+ Mảng là một cấu trúc dữ liệu, tại
đó chúng ta có thể lưu trữ các phần tử tương tự nhau. Thông thường, mảng là một tập hợp các phần tử có kiểu tương tự nhau
mà có vị trí ô nhớ liền kề
+ Trong Java, mảng có thể được hiểu
là MẢNG ĐỘNG, nghĩa là ta không cần phải khai báo/xác định trước kích thước tối
đa của mảng.
+ Mảng trong Java là dựa trên chỉ mục (index), phần tử đầu tiên của
mảng được lưu trữ tại chỉ mục 0.
Lợi thế của mảng trong Java
+ Tối ưu hóa code: từ đó chúng ta có thể thu nhận và sắp xếp dữ liệu
một cách dễ dàng.
+ Truy cập ngẫu nhiên: chúng ta có thể lấy bất cứ dữ liệu nào ở tại
bất cứ vị trí chỉ mục nào.
Các kiểu mảng trong Java: Có hai kiểu mảng trong Java, đó là:
+ Mảng một chiều
+ Mảng đa chiều. (thực chất mảng m chiều ta đều có thể quy về Mảng của mảng m-1 chiều. Vì vậy, mục này ta chỉ nghiên cứu và làm việc với Mảng 2 chiều.
Quy trình làm việc với mảng trong Java
Bước 1: Khai báo đối tượng mảng
Mảng 1 chiều:
§
<Kiểu dữ liệu>[] <Biến
mảng>;
§
<Kiểu dữ liệu> <Biến
mảng>[];
Ví dụ: int[] A, B, C; // => A, B, C đều là mảng các
số nguyên.
int X[], Y, Z[] ; // chỉ X và Z là mảng; Y là biến thường
Mảng 2 chiều:
§
<Kiểu dữ liệu>[][] <Biến
mảng>;
§
<Kiểu dữ liệu>[] <Biến
mảng>[];
§
<Kiểu dữ liệu> <Biến
mảng>[][];
Ví dụ: double[][] M ;
Bước 2: Nhập kích thước mảng:
Mảng 1 chiều: Nhập 1 số nguyên (m) // Số phần tử
Mảng 2 chiều: Nhập 2 số nguyên (h, c) // Số hàng, số cột
Ví dụ, nhập với đối tượng thuộc lớp Scanner
(Scanner sc = new Scanner(System.in);)
Nhập số nguyên:
m = sc.nextInt(); //
Ví dụ: m=100;
h = sc.nextInt(); c
= sc.nextInt(); // Ví dụ: h=3; c=4
Nhập số thực: sc.nextDouble();
Bước 3: Tạo lập đối tượng mảng
A = new
int[m];
// A là một mảng chứa m số nguyên int
M = new double[h][c]; // M là
một mảng 2 chiều, chứa h*c số thực double
Bước 4: Truy cập mảng: Truy cập theo cú
pháp
Mảng một chiều:
<Biến mảng>[chỉ_số];
Mảng 2 chiều: <Biến
mảng>[chỉ_số_hàng][chỉ_số_cột];
Trong đó: chỉ_số; chỉ_số_hàng; chỉ_số_cột là các số nguyên không
âm; nhỏ hơn kích thước của chiều tương ứng. Nếu vi phạm điều này, sẽ xuất hiện
ngoại lệ: ArrayIndexOutOfBoundsException
A[10] = 100; int c = 2 * A[6];
Double x = M[1][2] + c*M[2][2];
No comments:
Post a Comment