1. ArrayList là gì?!
Như ta thấy Arraylist là mảng động có thể thay đổi kích thước nên khi khai báo ta không xác định trước số lượng phần tử trong mảng này. Điều này đem lại một sự thuận lợi rất lớn trong việc quản lý bộ nhớ, khi nào cần dùng đến thì có thể cấp phát thêm, tránh lãng phí khi phải đưa ra một số lượng phần tử cố định cho trước để rồi không sử dụng hết tài nguyên; Cũng có trường hợp phát sinh lỗi do cấp phát không đủ.
2. Một số phương thức quan trọng của Arraylist:
- Item(): thiết lập hay truy cập thành phần trong array list tại vị trí xác định.
- Add(): thêm một đối tượng vào array list.
- Clear(): xóa tất cả các thành phần của arraylist.
- Clone(): tạo một bản copy.
- Contains(): kiểm tra xem mọt thành phần nào đó có thuộc array list hay không.
- CopyTo(): phương thức nạp chồng dung để sao chép một array list đến một mảng một chiều.
- IndexOf(): TRả về chỉ mục của vị trí đầu tiên xuất hiện giá trị.
- Insert(): chèn một thành phần vào arraylist.
- Sort(): sắp xếp Arraylist.
- ToArray(): sao chép những thành phần của ArrayList đến một mảng mới.
3. Thêm phần tử trong Arraylist:

Nhìn vào đoan code trên ta thấy khi khi khởi tạo 1 Arraylist list ta không cần xác định trước số lượng phần phần tử cố định. Mỗi khi cần thêm một phần tử mới chỉ cần dùng phương thức add(); Trong Array có một thuộc tính mặc định count dùng để tính số lượng phần tử có trong danh sách. Thuộc tính này sẽ được cập nhật tự động mỗi khi phương thức add(); được gọi. Và ta dễ dàng truy xuất tất cả các phần tử của arraylist thông qua hàm foreach() để duyệt qua tất cả các phần tử có trong danh sách, tại mỗi phần tử ta xuất kết quả ra màn hình console.
Trong ví dụ trên ta thấy không hề có khai báo kiểu dữ liệu cho mỗi phần tử của danh sách, mỗi phần tử khi thêm vào được gán giá trị là 1 string, và khi truy xuất dùng foreach để tìm tất cả các string trong danh sách. Nhưng nếu đặt trường hợp ta muốn danh sách gồm các số nguyên thì phải làm thế nào??? Trong Arraylist không giới hạn kiểu dữ liệu cho mỗi phần tử trong danh sách!!! Nếu ta muốn tạo 1 danh sách gồm các số nguyên thì khi add ta chỉ cần thay thể những string bên trên bằng các số nguyên là được. Khi cần xuất giá trị thì dùng hàm foreach tìm tất cả các số nguyên trong danh sách.
Vậy có thể tạo 1 danh sách gồm nhiều kiểu dữ liệu khác nhau được không?! Xin trả lởi trường hợp này hoàn toàn có thể được. Bạn có thể tạo 1 danh sách trong đó vừa có string, int và cả char, float… Nhưng vấn để lại xảy ra khi các phần tử có kiểu dữ liệu khác nhau thì làm sao có thể dùng foreach() để truy xuất được. Chắc chắn rằng nếu danh sách vừa có số và chuỗi thì foreach(int) hay foreach(string) cũng đều phát sinh lỗi. Để khắc phục tình trạng này ta có thể dùng biến var để truy xuất các phần tử trong danh sách mà không cần quan tâm dữ liệu là gì?
Để hiểu hơn ta có thể xem ví dụ bên dưới:

4. Nối 2 arraylist
Trong Arraylist có hỗ trợ phương thức AddRange() giúp ta dễ dàng nối 1 arraylist vào 1 arraylist ban đầu. Nói chính xác hơn phương thức này hỗ trợ thêm các phần tử của 1 danh sách khác vào sau 1 danh sách ban đầu và danh sách kia sẽ không có sự thay đổi gì khác.
Ví dụ:

Trong ví dụ trên ta thấy rằng list 1 sau khi qua xử lý bởi hàm Addrange() trên đã có thêm các phần tử của list2, các phần tử mới được thêm vào cuối list1 như thông thường. Và các phần tử trong list2 không có sự thay đổi nào.
5. Tách 1 Arraylist từ Arraylist ban đầu
Ta thấy trong ví dụ trên ta tiến hành nối ghép 1 Arraylist vào Arraylist ban đầu. Đến đây ta tự hỏi có cách nào làm ngược lại hay không? Nghĩa là từ 1 danh sách cho trước ta tiến hành tạo mới danh sách khác từ các phần tử của danh sách ban đầu. Để hiểu hơn vấn đề này ta cùng xem ví dụ bên dưới. Ban đầu ta có 1 danh sách list1 với 4 phần tử lần lượt được thêm vào. Khởi tạo danh sách list2 qua việc dùng phương thức GetRange để tách các phần tử từ list1. GetRange có 2 đối số. Đối số thứ nhất cho biết vị trí bắt đầu của phần tử trong list1, lưu ý vị trí các phần tử trong danh sách được tính từ 0; Đối số thứ 2 cho biết số lượng phần tử cần tách. Cần chú ý thêm 1 điểm nữa: Sau khi tạo mới list2 từ list1 thì các phần tử trong list1 không hề có sự thay đổi.

6. Xóa tất cả các phần tử trong Arraylist:
Với Arraylist ta dễ dàng xóa bỏ tất cả các phần tử trong danh sách bằng phương thức Clear(); Sau khi dùng phương thức Clear(); giá trị của thuộc tính count sẽ trả về 0 và tất cả các phần tử của danh danh sách sẽ được hủy, khôi phục trạng thái ban đầu của danh sách.

Lời bình mới nhất