ổng quan về Collections trong Java. - Học Java core - từ cơ bản đến nâng cao
Trong chương này, chúng ta sẽ cùng nhau tìm hiểu về khái niệm Collections. Như tôi đã nói trong chương trước, Collections ra đời là để khắc phục những hạn chế, nhược điểm khi sử dụng mảng để lập trình. Trong bài đầu tiên, tôi sẽ giới thiệu tổng quan về Collections trong Java và sau đó tôi sẽ lần ...
Trong chương này, chúng ta sẽ cùng nhau tìm hiểu về khái niệm Collections. Như tôi đã nói trong chương trước, Collections ra đời là để khắc phục những hạn chế, nhược điểm khi sử dụng mảng để lập trình. Trong bài đầu tiên, tôi sẽ giới thiệu tổng quan về Collections trong Java và sau đó tôi sẽ lần lượt giới thiệu chi tiết về từng loại Collections trong các bài tiếp theo.
1. Khái niệm về Collections (tập hợp)
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, ví dụ như khi chúng ta thêm, sửa, xóa, chèn phần tử trong danh sách đó. Ngoài ra, Collections còn được dùng để lưu trữ, truy xuất, tương tác với dữ liệu và truyền dữ liệu giữa các phương thức với nhau (chi tiết về phương thức tôi sẽ giới thiệu trong chương Lập trình hướng đối tượng).
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.
2. Collections Framework
Trong phần 1, tôi đã giới thiệu với các bạn sơ lược về Collections. Vậy Collections Framework là gì? Trước khi tìm hiểu về vấn đề này, các bạn cần phải hiểu về khái niệm Framework: "Framework là một tập hợp các thư viện (Library) đã được đóng gói để hỗ trợ phát triển ứng dụng dựa trên Framework đó. Đồng thời, Framework cung cấp các nguyên tắc, cấu trúc của ứng dụng mà chúng ta phải tuân thủ theo nó."
Ví dụ về Framework: Trong lập trình Java, chúng ta có Framework Spring, đây là một Framework phổ biến dùng để lập trình web với Java. Để sử dụng được Framework này thì chúng ta phải tuân thủ theo mô hình và cách hoạt động của nó, nghĩa là Spring Framework đều đã viết sẵn các thư viện để chúng ta sử dụng lại cùng với các khuôn mẫu (design pattern), cấu trúc của ứng dụng,... mà chúng ta phải tuân theo nó để có thể xây dựng được ứng dụng.
Sau khi đã tìm hiểu về Framework thì Collections Framework được hiểu như sau: "Một Java 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" (chi tiết về interface tôi sẽ giới thiệu trong chương Lập trình hướng đối tượng, nhưng bạn có thể hiểu nôm na là 1 interface là 1 lớp rỗng chỉ chứa khai báo về tên phương thức, không có khai báo về thuộc tính hay thứ gì khác và các phương thức này cũng là phương thức rỗng).
Trong Java, các Collections Framework cung cấp những thành phần sau:
3. Interface Collections, Class Collections và Algorithms
Collections Framework trong Java bao gồm 2 loại chính đó là Interface Collections và Class Collections, mỗi loại này sẽ có những đặc điểm và thành phần của riêng nó. Sau đây chúng ta sẽ cùng nhau tìm hiểu về 2 loại này.
Interface Collections
Là một tập hợp đại diện cho một nhóm các đối tượng, và được gọi là các phần tử (elements).
Một số Interface Collection cho phép lưu trữ các phần tử giống nhau, còn một số khác thì không. Ngoài ra, các phần tử này có thể có thứ tự hoặc không có thứ tự tùy theo từng loại Collection khác nhau.
Bao gồm các phương thức như thêm (add), xóa (clear), so sánh (compare) và duy trì (retainining) các đối tượng.
Trong Interface Collections chúng ta có các Interface chính như: List Interface, Set, SortedSet, Map và SortedMap. Bảng dưới đây sẽ mô tả khái quát về các Interface này:
Class Collections
Java cung cấp một tập hợp các lớp tiêu chuẩn dùng để triển khai các Interface Collection. Trong Class Collections chúng ta có rất nhiều loại nhưng trong phạm vi của series Lập trình Java căn bản này thì chúng ta chỉ cần nắm 6 loại chính sau: LinkedList, ArrayList, HashSet, TreeSet, HashMap và TreeMap. Bảng dưới đây sẽ mô tả khái quát về các Class này:
Algorithms (các thuật toán)
Collections Framework trong Java cung cấp các thuật toán để các Collection có thể sử dụng được. Chi tiết về các thuật toán này tôi sẽ trình bày trong các bài sau.
4. Iterator (lặp) trong Java
Trong các bài trước, khi muốn duyệt qua các phần tử của một đối tượng nào đó thì thông thường chúng ta hay sử dụng các loại vòng lặp như for
, while
hoặc do - while
. Nhưng đối với Collections thì chúng ta sử dụng một cách mới để duyệt qua các phần tử của một Collection đó là Iterator.
Vậy Iterator dùng để làm gì? Đối với Collections, Iterator là một Interface cung cấp một số các phương thức để duyệt (lặp) qua các phần tử của bất kỳ tập hợp nào. Ngoài ra, Iterator còn có khả năng xóa những phần tử của một tập hợp trong quá trình lặp.
5. Interface Comparable và Comparator
Java cung cấp 2 Interface Comparable và Comparator để so sánh và sắp xếp vị trí 2 đối tượng của một Collection. Chi tiết về 2 Interface này chúng ta sẽ tìm hiểu khi bước sang chương Lập trình hướng đối tượng.
6. Lời kết
Trong bài mở đầu của chương này, tôi đã trình bày kiến thức tổng quát về các khái niệm Collections, Collections Framework và 2 loại chính của nó là Interface Collections và Class Collections. Sang các bài sau, chúng ta sẽ lần lượt tìm hiểu về các Interface Collections và Class Collections phổ biến nhất mà tôi đã đưa ra ở bài này. Các bạn theo dõi nhé!