Java: Interface Collection
Framework Collections bao gồm các interface và class để làm việc với nhóm đối tượng. Ở trên đỉnh của phân cấp là interface Collection.
Collection giúp chuyển đổi loại của collection. Điều này có được bằng cách sử dụng hàm tạo chuyển đổi cho phép khởi tạo collection mới để chứa phần tử có trong collection được chỉ định bất kể inteface con nào của collection.
Lưu ý - Có 2 loại collection là có thứ tự và không có thứ tự. Một số collection cho phép các phần tử trùng lặp.
JDK cung cấp việc triển khai các interface con cụ thể như Set và List, được sử dụng để chuyển các tập hợp và thao tác chúng ở bất cứ nơi nào được yêu cầu chung chung.
Interface Collection được mở rộng bởi các interface phụ sau:
- Set
- List
- Queue
Các lớp collection là các lớp chuẩn thực thi các interface Collection. Một số lớp cung cấp triển khai đầy đủ các interface trong khi một số lớp cung cấp các triển khai cơ bản và trừu tượng. Một số lớp Collection cụ thể như sau:
- HashSet
- LinkedHashSet
- TreeSet
Hình 2 thể hiện interface Collection.
Hình 2: Interface Collection
Lưu ý - Có hai interface khác là Map và SortedMap biểu diễn ánh xạ giữa các phần tử nhưng không mở rộng từ interface Collection.
Các phương thức của interface Collection
Interface Collection giúp truyền các đối tượng collection với tính tổng quát tối đa. Một lớp collection chứa một số mục trong cấu trúc dữ liệu và cung cấp các thao tác khác nhau để thao tác với nội dung của collection, chẳng hạn như thêm mục, xóa mục và tìm số phần tử.
Collection bao gồm các phương thức sau:
size
,isEmpty
: Sử dụng những phương thức này để thông báo về số lượng phần tử tồn tại trong collection.contains
: Sử dụng để kiểm tra xem một đối tượng nhất định có trong collection hay không.add
,remove
: Sử dụng để thêm và xóa một phần tử khỏi collection.interator
: Sử dụng để cung cấp một trình lặp qua interface.
Một số phương thức quan trọng khác được hỗ trợ bởi Collection được liệt kê trong bảng 2.
Phương thức |
Mô tả |
---|---|
clear() |
Phương thức xóa hoặc xóa tất cả nội dung khỏi collection |
toArray() |
Phương thức trả về một mảng chứa tất cả các phần tử của collection |
Bảng 2: Các phương thức được hỗ trợ bởi Collection
Duyệt collection
Phần sau đây mô tả hai cách để duyệt qua các collection:
► for-each: Điều này giúp duyệt một collection hoặc mảng sử dụng một vòng lặp for. Ví dụ 1 minh họa việc sử dụng cấu trúc for-each để in ra từng phần tử của collection trên một dòng riêng biệt.
Ví dụ 1:
for (Object obj : collection)
System.out.println(obj);
Cấu trúc for-each không cho phép loại bỏ phần tử hiện tại bằng cách gọi remove() vì nó ẩn trình vòng lặp.
► Iterator: Giúp duyệt qua một collection. Chúng cũng giúp loại bỏ các phần tử khỏi collection một cách có chọn lọc. Phương thức iterator() được gọi để lấy một Iterator cho một collection. Interface Iterator bao gồm các phương thức sau:
public interface Iterator<E> { boolean hasNext(); E next(); void remove(); //optional }
Phần sau mô tả interface Iterator:
- Phương thức hasNext() trả về true nếu iterator có phần tử tiếp sau
- Phương thức next() trả về phần tử tiếp theo trong vòng lặp.
- Phương thức remove() loại bỏ phần tử cuối cùng được trả về bởi phương thức next() khỏi collection. Phương thức remove() chỉ có thể được gọi một lần cho mỗi lần gọi phương thức next(). Nếu điều này không được tuân thủ, phương thức remove() sẽ ném một ngoại lệ.
Lưu ý - Chỉ phương thức Iterator.remove() sửa đổi một cách an toàn collecton trong quá trình lặp.
Hoạt động loạt
Các hoạt động loạt thực hiện các hành động tốc ký trên toàn bộ collection bằng các phép toán cơ bản. Bảng 3 mô tả các phương thức cho các hoạt động loạt.
Phương thức |
Mô tả |
---|---|
containAll |
Phương thức này sẽ trả về true nếu collection đích chứa tất cả các phần tử tồn tại trong Collection được chỉ định. |
addAll |
Phương thức này sẽ thêm tất cả các phần tử của Collection được chỉ định vào collection đích. |
removeAll |
Phương thức này sẽ xóa tất cả các phần tử khỏi Collection đích tồn tại trong collection được chỉ định. |
retainAll |
Phương thức này sẽ xóa những phần tử đó khỏi Collection đích không tồn tại trong collection được chỉ định. |
Bảng 3: Các phương thức hoạt động loạt
Phương thức addAll(), removeAll(), và retailAll() trả về true nếu collection đích được sửa đổi trong quá trình thực thi hoạt động.