[JAVA] Mảng và lớp công cụ java.util.Arrays – Phần 1
Mảng (Array) là một cấu trúc dữ liệu cơ bản nhất, cơ bản đến mức mà hầu như bất kì một ngôn ngữ lập trình nào cũng đều có kiểu cấu trúc dữ liệu này, mảng gần như là một thành bắt buộc phải học đối với mỗi người khi bắt đầu với Java hoặc bắt kì ngôn ngữ lập trình nào. Không chỉ có vậy Java còn có hẳn một lớp công cụ hỗ trợ việc thao tác với mảng đó là java.util.Arrays, lớp công cụ này rất mạnh và hữu ích vì nó có rất nhiều phương thức giúp lập trình viên dễ dàng hơn trong quá trình làm việc với mảng. Tuy nhiên không phải ai cũng biết và vận dụng tốt lớp công cụ này, vì vậy thông qua bài viết này mình xin mạn phép chia sẻ một số hiểu biết của mình về mảng và lớp công cụ java.util.Arrays đầy mạnh mẽ của này Java.
Giới thiệu sơ lược về mảng trong Java
Vì mảng là một kiểu dữ liệu quá cơ bản hầu như ai đã học Java cũng đều biết và đã từng sử dụng qua nên mình sẽ không đi sâu vào việc giới thiệu về mảng nữa mà chỉ lướt qua một vài đặc điểm chính của mảng mà thôi.
1. Mảng là gì?
- Mảng là một cấu trúc cố định dùng để lưu trữ một chuỗi tuần tự có giá trị có cùng kiểu dữ liệu. Hay nói cách khác, mảng là một cấu trúc được đánh chỉ mục dùng để lưu trữ các giá trị khác nhau có cùng kiểu dữ liệu.
- Trong java mảng có thể có nhiều hơn 1 chiều.
2. Phần tử và cách truy cập tới các phần từ trong mảng
- Các giá trị được lưu trữ trong mảng được gọi là các phần tử (element).
- Để truy cập các phần tử của mảng các bạn sử dụng chỉ mục chỉ vị trí của phần tử đó trong mảng. Chỉ mục là một số nguyên cho biết vị trí của một phần tử nào đó trong một cấu trúc dữ liệu, trong trường hợp này là cấu trúc mảng.
- Trong Java, phần tử đầu tiên của mảng được lưu trữ tại chỉ mục 0, các phần từ tiếp theo sẽ lần lượt có chỉ mục là 1, 2, …, (kích thước mảng -1)
3. Cách khai báo mảng trong java
<kiểu dữ liệu> <tên mảng>[];
hoặc
<kiểu dữ liệu>[] <tên mảng>;
Ví dụ :
1 |
int arrInt[]; |
4. Cách tạo mảng trong java
tên_biến_mảng = new <Kiểu_dữ_liệu>[kích_thước_mảng];
hoặc có thể gộp chung câu lệnh khai báo và khởi tạo như sau:
<Kiểu_dữ_liệu>[] tên_biến_mảng = new <Kiểu_dữ_liệu>[kích_thước_mảng];
hoặc có thể sử dụng cách khai báo chính xác các giá trị của các phần tử ở trong mảng như sau:
<Kieu_du_lieu>[] Bien_tham_chieu_mang = {giatri0, giatri1, …, giatriN};
5. Thuộc tính length của mảng
Bất kì mảng nào trong java cũng đều có 1 thuộc tính kiểu nguyên đó là length – là thuộc tính chỉ số lượng phần tử, cũng là kích thước của mảng
6. Cách duyệt mảng
Để duyệt qua từng phần tử của mảng, ta có 2 cách cơ bản sau đây:
- Cách 1: sử dụng for với thuộc tính length:
123for(int i=0; i<arr.length; i++){//xử lý với phần tử thứ i của mảng: arr[i]}
- Cách 2: sử dụng foreach
123for(<Kiểu dữ liệu> tên_biến_tạm : tên_mảng){//xử lý với phần tử thứ i của mảng: arr[i]}
ví dụ:
123for(int ai : arr){ //với arr là mảng kiểu nguyên//xử lý với phần tử thứ i của mảng: arr[i]}
Theo kinh nghiệm của mình: nếu không có yêu cầu đặc biệt về việc dùng chỉ số mảng thì các bạn nên sử dụng cách thứ 2.
7. Một số chú ý khi sử dụng mảng
Khi sử dụng mảng trong java các bạn cần chú ý một số điều sau:
- Mảng là kiểu dữ liệu dạng tham chiếu (refrence type) vì vậy khi truyền mảng vào hàm thì hàm có thể làm thay đổi được các giá trị nằm bên trong mảng.
- Kích thước của mảng là cố định, sau khi khai báo mảng bạn không thể tăng hay giảm kích thước của mảng. Nếu bạn muốn mảng mới có kích thước lớn hơn nhưng vẫn bao gồm các phần tử của mảng đang có thì bạn chỉ có 1 cách đó là tạo mảng mới và copy các phần tử từ mảng đang có sang mảng mới mà thôi.
- Chỉ số để truy cập 1 phần tử trong mảng bắt buộc phải trong đoạn từ 0 đến kích thước mảng -1, nếu bạn truy cập với chỉ số nằm ngoài khoảng này thì sẽ có một ngoại lệ (exception) là IndexOutOfBoundException xảy ra.
Phần 1 của bài viết đến đây xin được kết thúc mời các bạn xem tiếp phần 2 tại đây: [Java] Mảng và lớp công cụ java.util.Arrays – Phần 2
Xin cảm ơn các bạn đã đọc bài viết của mình.
Twitter tag: #java-basic, #java-cho-nguoi-da-biet, #that2u
- Google+
- Wordpress