Collections trong Java

Tập hợp ( Collections ) trong java là một khuôn khổ phân phối một kiến trúc để tàng trữ và thao tác tới nhóm những đối tượng người dùng. Tất cả những hoạt động giải trí mà bạn thực thi trên một tài liệu như tìm kiếm, phân loại, chèn, xóa, … hoàn toàn có thể được thực thi bởi Java Collections .

Collection trong java là một root interface trong hệ thống cấp bậc Collection. Java Collection cung cấp nhiều interface (Set, List, Queue, Deque,….) và các lớp (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet,…).

image

Phần cài đặt trong collections

Gói java.util cung cấp tập các lớp cài đặt các giao diện lõi để tạo ra những cấu trúc dữ liệu thường sử dụng như: Vector, HashTable, HashSet, LinkedList, TreeSet,…. Những lớp này và giao diện lõi được xây dựng theo cấu trúc phân cấp như sau:

Bạn đang đọc: Collections trong Java

image

Phần interface trong collections

Giao diện (interface) Collection là cơ sở để phát triển, mở rộng thành các giao diện khác như Set, List, SortedSetMap và giao diện cơ sở để mở rộng thành SortedMap. Các giao diện lõi của cấu trúc Collection được mô tả trong bảng sau:

interface Mô tả
Collection interface cơ sở định nghĩa tất cả các phép toán cơ bản cho các lớp cần duy trì thực hiện và cài đặt chúng
Set là một collection không thể chứa 2 giá trị trùng lặp. Set được sử dụng để biểu diễn các bộ, chẳng hạn như bộ tú lu khơ, thời khóa biểu của học sinh, các tiến trình đang chạy trên máy tính…
SortedSet Mở rộng Set để cài đặt cấu trúc tập hợp được sắp, trong đó không có phần tử được lặp và chúng được sắp xếp theo thứ tự
List là một collection có thứ tự (đôi khi còn được gọi là một chuỗi). List có thể chứa các phần tử trùng lặp. Thường có quyền kiểm soát chính xác vị trí các phần tử được chèn vào và có thể truy cập chúng bằng chỉ số (vị trí của chúng).
Map interface cơ sở định nghĩa các phép toán để các lớp sử dụng và cài đặt các ánh xạ từ khoá sang các giá trị
SortedMap Mở rộng của Map để cài đặt các ánh xạ khoá theo thứ tự
Queue là một collection được sử dụng để chứa nhiều phần tử trước khi xử lý. Bên cạnh các thao tác cơ bản của collection, Queue cung cấp các thao tác bổ sung như chèn, lấy ra và kiểm tra. Queue có thể được sử dụng như là FIFO (first-in, first-out – vào trước, ra trước)
Deque là một collection được sử dụng để chứa nhiều phần tử trước khi xử lý. Ngoài các thao tác cơ bản của collection, một Deque cung cấp các thao tác bổ sung như chèn, lấy ra và kiểm tra. Deques có thể được sử dụng như là FIFO (first-in, first-out – vào trước, ra trước) và LIFO (last-in, first-out – vào sau, ra trước). Trong một Deque, tất cả các phần tử mới có thể được chèn vào, lấy ra và lấy ra ở cả hai đầu.

Phần thuật toán trong collections

Lớp java.util.Collection (cần phân biệt với giao diện Collection) cung cấp một số hàm static thực hiện những thuật toán đa xạ cho những phép toán khác nhau trên tập hợp, kể cả sắp xếp, tìm kiểm và dịch chuyển các phần tử.

Một số hàm trong số đó là :
Sử dụng thuật toán tìm kiếm nhị phân để xác lập chỉ số của thành phần key trong list list .

static int binarySearch(List list, Object key)

Thay thế toàn bộ những thành phần trong list list bằng obj

static void fill(List list, Object obj)

Hoán vị những thành phần của list list một cách ngẫu nhiên .

static void shuffle(List list)

Sắp xếp những thành phần trong list list theo thứ tự tăng dần .

static void sort(List list)

Collection trong Java

Giao diện Collection được thiết kế xây dựng như thể mẫu hợp đồng cho tổng thể những cấu trúc tập hợp hoàn toàn có thể dựa vào đó mà thực thi và thiết lập. Gói java.util phân phối những lớp tập hợp và setup hầu hết những hàm của Collection .
Các phép toán cơ sở

int size();  
boolean isEmpty();  

boolean contains(Object obj

)

; boolean remove(Object obj);

Trả lại true nếu tập hợp triển khai thành công việc bổ trợ ( vô hiệu ) obj, ngược lại false .

Một số phép toán khác

Những phép toán sau thực thi trên tập hợp như một đơn vị chức năng cấu trúc tài liệu .
Kiểm tra xem tập hợp hiện thời có chứa cả tập hợp c hay không .

boolean cotainAll(Collection c);     

Thực hiện phép hợp hai tập hợp

boolean addAll(Collection c); 

Thực hiện phép trừ hai tập hợp

boolean removeAll(Collection c);  

Thực hiện phép giao hai tập hợp

boolean retainAll(Collection c);  

Hủy bỏ đối tượng người tiêu dùng trong tập hợp những phép trên trả lại true nếu triển khai thành công xuất sắc và cho hiệu quả triển khai được minh họa như trong hình H6-4, trong đó a, b là hai tập hợp bất kể .

void clear()  

Hình Các phép toán trên những tập hợp

a.addAll(b)
a.removeAll(b)
a

.

retainAll(b)