Java Collections Framework- Giới Thiệu Collections - aktvTech - Share your tech knowledge

Recent

Home Top Ad

Responsive Ads Here

Thursday, July 4, 2019

Java Collections Framework- Giới Thiệu Collections

Java Collections Framework là một nền tảng căn bản không thể thiếu của một Java Developer. Khi phát triển 1 phần mềm chúng ta thường xuyên phải làm việc với tập hợp, hay các cấu trúc phức tạp như cây, mảng băm. Java cũng như các ngôn ngữ khác hỗ trợ mảng (array) như 1 tập hợp cơ bản nhất, xong việc thao tác trên mảng là không thuận tiện trong nhiều trường hợp bởi vì trong thời gian sống của mảng việc tăng thêm phần tử hoặc xóa các phần tử của mảng rất khó khăn và phải trả giá đắt về hiệu năng chương trình nếu cố tình làm điều đó. Collections ra đời là để khắc phục những hạn chế, nhược điểm của mảng trong Java

1. Những hạn chế của mảng


Hạn chế đầu tiên mà chúng ta có thế thấy ngay đó là fixed in size - kích thước mảng phải cố định dẫn đến hàng loạt khuyết điểm:
  • Tràn vùng nhớ / lãng phí bộ nhớ
  • Vùng nhớ liên tục dẫn đến chèn / xóa phần tử mất nhiều thời gian, do phải sắp xếp lại.
  • Low-level không thể tùy chỉnh các tính năng.

2. Collections trong Java

Collections là một tập các lớp dùng để lưu trữ danh sách và có khả năng tự co dãn khi danh sách đó thay đổi. Một đặc điểm rất quan trong là khi sử dụng Collections đó là chúng ta không cần phải khai báo trước số lượng phần tử. Chính đặc điểm này đã khắc phục được hạn chế về kích thước khi khai báo mảng trong Java. Hơn nữa Collections cho phép chúng ta tùy biến các phương thức, hay khởi tạo riêng 1 lớp để phục vụ mục đích riêng biệt

3. Collections Framework

Collections Framework là một tập hợp các lớp (class) và các interface dùng để hỗ trợ việc thao tác trên tập các đối tượng đạt hiệu suất cao. Cho phép kế thừa và tìm hiểu các tập hợp 1 cách dễ dàng
Collections Framework cung cấp những thành phần sau:
Loại Mô tả
Interfaces Các phương thức mà các lớp cần phải có để hỗ trợ việc thao tác trên tập hợp
Implementations Các lớp triển khai các Interface.Về bản chất chùng là những cấu trúc dữ liệu có thể tái sử dụng.
Algorithms Các thuật toán xữ lý các phương thức được triển khai trong interface.

4. Thành phần Interface

Hầu hết các thành phần interface trong collections đều có chung 1 parent interface là java.util.Collection (ngoại trừ Map) qua đó được kế thừa một số phương thức của Collection interface như thêm (add), loại bỏ (remove), kiểm tra tồn tại (contains) hay duyệt danh sách thông qua Iterable interface
Dưới đây danh sách các interfaces trong collections:
Tên các thành phần Đặc điểm
List Các phần tử được tổ chức thành 1 chuỗi liên tục. List quản lý các phần tử thông qua cơ chế index-based (chỉ số)
Queue
Set Các phần tử trong Set không được sắp xếp và các phần tử không được trùng nhau
Sorted Set Một dạng tùy biến của Set, các phần tử sẽ được sắp xếp mặc định tăng dần
Map Phần tử trong Map sẽ được tổ chức dưới dạng cặp key - value. Một phần tử sẽ được quản lý (truy xuất) thông qua khóa tương ứng của nó và các khóa này phải đảm bảo điều kiện duy nhất.
Sorted Map Một dạng tùy biến của Map, trong đó các giá trị khóa sẽ được sắp xấp tăng dần.
Ngoài ra Java còn cung cấp 2 Interface Comparable và Comparator phục vụ cho việc so sánh và sắp xếp vị trí 2 đối tượng của một Collection và 2 Interface Iterator và ListIterator phục vụ cho việc duyệt các đối tượng trong Collection.

5. Thành phần Implementations

Collections cung cấp rất nhiều các imlementations (lớp) tiêu chuẩn để triển khai các Interface ở trên. Và dưới đây là một số implementation thông dụng nhất:
Tên Đặc điểm
ArrayList
LinkedList
HashSet
TreeSet
HashMap
TreeMap

6. Thành phần Algorithms

Ta sẽ đề cập chi tiết về hướng triển khai của từng implementation khi đó ta có thể thấy rõ được ưu và nhược điểm của từng implementation và từ đó đưa ra hướng lựa chọn chính xác khi làm việc với collection

>> Phần kế: Tìm hiểu về List Interface

7. Duyệt phần tử trong Collections

Phần này khá dài nên mình xin được tách ra 1 phần riêng.

No comments:

Post a Comment