Bài 3. Mảng trong ngôn ngữ lập tŕnh Java
Như đă nói ở phần trước.ngoài những kiểu dữ liệu cơ sở java c̣n cung cấp các kiểu dữ liệu tham chiếu sau:
· Mảng (array)
· Lớp (class)
· Giao diện (interface)
Sau đây chúng tôi sẽ tŕnh bày vói các bạn về kiểu dữ liệu mảng.
1. Định nghĩa:
Mảng là một tập hợp nhiều phần tử có cùng kiểu dữ liệu
Ví dụ: mảng các số nguyên {1,2,3,4,5, }
Mảng các kí tự {@,#,$,%,...}
2. Khai báo:
Java cung cấp 2 cách khai báo mảng như sau:
· Cặp ngoặc vông đặt sau tên biến.
Ví dụ: int mangsonguyen [ ] ;
Câu lệnh trên khai báo một mảng số nguyên tên là mangsonguyen
· Cặp ngoặc vông đặt sau kiểu dữ liệu
Ví dụ: int [ ] mangsonguyen ;
Câu lệnh này cũng là để khai báo một mảng có tên là mangsonguyen
Cả hai cách khai báo trên đều là khai báo một mảng trong java.thường th́ người ta dùng cách thứ 2 để khai báo nhiều mảng cùng loại một lúc như:
int [ ] mang1,mang2,mang3;
chắc hẳn các bạn cũng thấy sau khi khai báo chúng ta chỉ có thể biết được rằng mảng này mang kiểu dữ liệu ǵ và tên mảng là ǵ nhưng không thể biết được số lượng phần tử trong mảng được khai báo là bao nhiêu. Chúng ta sẽ thấy trong phần tiếp theo đây:
3. Cấp phát bộ nhớ cho mảng.
Trong java,sau khi khai báo th́ mảng chưa được xác định.chúng ta cần phải cấp phát cho nó một bộ nhớ để có thể lưu trữ được dũ liệu.
Không như các ngôn ngữ khác kích thước của mảng không thể xác định ngay khi khai báo như sau: int mang[10] nếu khai báo như vậy th́ sẽ bị lỗi biên dịch ngay.bởi v́ trong java tất cả các hoạt động đều thông qua các đối tượng.mảng cũng vậy.chúng ta phải cấp phát bộ nhớ cho mảng như sau:
int mang[ ] = new int[10]; đây là cách cấp phát ngay khi khai báo mảng.ư nghĩa của câu lệnh trên là khai báo một mảng nguyên có tên là mang có kích thước là 10.
Hay cũng để khai báo và cấp phát như trên ta có đoạn mă lệnh như sau:
int mang[ ];
mang = new int[10];
nghĩa là chúng ta có thể khai báo mảng trước sau đó mới cấp phát bộ nhớ cho nó.
4. Khởi tạo mảng.
Sau khi khai báo và cấp phát bộ nhớ cho mảng.các phẩn tử của mảng cũng được khởi tạo với các giá trị mặc định như với các biến.ngoài ta chúng ta cũng có thể gộp khai báo ,cấp phát và khởi tạo mảng bằng cách liệt kê các giá trị cảu mảng như sau:
int mang[ ]={1,2,3,4,5} ḍng lệnh khai báo một mảng có 5 phần tử và giá trị của mỗi phần tử tương ứng là 1,2,3,4,5
5. Truy cập một mảng.
Trong java,các phần tử trong mảng được đánh số thứ tự tù 0.nghĩa là phần tử đầu tiên của mảng là phần tử thứ 0 và phần tử cuối cùng của mảng n phần tử mang thứ tự là
n-1.để truy cập một phần tử của mảng ta làm như sau:
để truy cập phần tử thứ k của mảng tên là A : A[k]
ví dụ: int A[ ]={1,2,3,4,5}
khi đó A[0]=1,A[1]=2,A[2]=3,A[3]=4.A[4]=5.
6. Mảng nhiều chiều trong java.
· Khai báo:mảng nhiều chiều cũng được khai báo như mảng một chiều nhưng thêm một dấu ngoặc vuông như sau:
Ví dụ: int [ ][ ] a=new int[3][4]; khai báo mảng số nguyên 2 chiều có tên là a có 3 phần tử là mảng một chiều và mỗi mảng một chiều có 4 phần tử là số nguyên
hay cũng có thể khai báo với các giá trị khởi tạo như sau:
int [ ][ ] a={{1,2,3},{4,5,6},{7,8,9}};
· Cách truy cập
Cũng như mảng một chiều.để truy cập vào một phần tử trong mảng nhiều chiều chúng ta cũng sử dụng thứ tự vị trí của phần tử đó.
Ví dụ:
int [ ][ ] a={{1,2,3},{4,5,6},{7,8,9}};
int b=a[1][2]; khi đó b=6;
7. Các hàm với mảng trong java.
Java cung cấp một số hàm như sau:
· Hàm length :hàm này cung cấp số phần tử của mảng
Ví dụ:
int A[ ]={1,2,3,4,5};
int a=A.length; khi đó a=5.
· Hàm System.arraycopy trong gói thư viện System
Ví dụ:
int a[ ]={1,3,5,7,9,11,13,15}
int b[ ]={2,4,6,8,10,12,14}
System.arraycopy(a,3,b,2,4);
Kết quả của đoạn mă lệnh trên là mảng b có giá trị mới là {2,4,7,9,11,13,14}
Nghĩa là hàm này sẽ thay thế 4 phần tử tính từ phần tử thứ 2 trong mảng b bằng ngần ấy phần tử tính từ phần tử thứ 3 trong mảng a.
· Các hàm trong gói thư viện java.until.Arrays
Ø Hàm sắp xếp mảng số tăng dần.
Ví dụ:
int a[ ]={2,6,4,1,5};
Arrays.sort(a);
Kết quả sẽ được mảng a có giá trị là {1,2,4,5,6}
Ø Hàm t́m kiếm một phần tử trong mảng.kết quả trả về sẽ là vị trí của phần tử đó trong mảng,sẽ trả về giá trị là -1 nếu không tim thấy
Ví dụ:
int a[ ]={1,3,5,2,4};
int n=Arrays.binarySearch(a,2);
kết quả là n=3;











Trả lời với trích dẫn