Trong các bài viết trước, tôi đã giới thiệu với các bạn HashMap và HashSet. Trong bài này, tôi sẽ so sánh sự giống nhau, khác nhau của 2 collection này. Show Giống nhau của HashMap và HashSet
Khác nhau của HashMap và HashSetHashSetHashMapHashSet cài đặt (implement) Set interface.HashMap cài đặt (implement) Map interface.HashSet lưu trữ dữ liệu dưới dạng các đối tượng (object).HashMap lưu trữ dữ liệu dưới dạng cặp khóa-giá trị (key-value).Bên trong HashSet sử dụng HashMap.Bên trong HashMap sử dụng một mảng đối tượng Entry<K, V>.HashSet không cho phép các phần tử trùng lặp.HashMap không cho phép các khóa (key) trùng lặp, nhưng cho phép các giá trị (value) trùng lặp.HashSet chỉ cho phép một phần tử null.HashMap cho phép một khóa (key) null và nhiều giá trị (value) null.Thao tác chèn (insert/add) chỉ yêu cầu một đối tượng.Thao tác chèn (put) yêu cầu hai đối tượng, khóa và giá trị (key-value).HashSet hơi chậm hơn HashMap.HashMap nhanh hơn một chút so với HashSet.Sử dụng HashSet khi bạn cần duy nhất dữ liệu (object).Sử dụng HashMap khi bạn cần duy nhất khóa (key). Chuyên mục: Collection Được gắn thẻ: Collection Bình luậnbình luận Collection Interface định nghĩa những phương thức cơ bản khi làm việc với tập hợp, đây là gốc cũng là nền móng để từ đó xây dựng lên cả bộ thư viện Java Collection Framework. Collection Interface được kế thừa từ Iterable Interface nên các bạn có thể dễ dàng duyệt qua từng phần tử thông qua việc sử dụng Iterator. 3. Set InterfaceSet (tập hợp) là kiểu dữ liệu mà bên trong nó mỗi phần tử chỉ xuất hiện duy nhất một lần (tương tự như tập hợp trong toán học vậy) và Set Interface cung cấp các phương thức để tương tác với set. Set Interface được kế thừa từ Collection Interface nên nó cũng có đầy đủ các phương thức của Collection Interface. Một số class thực thi Set Interface thường gặp:
4. List InterfaceList (danh sách) là cấu trúc dữ liệu tuyến tính trong đó các phần tử được sắp xếp theo một thứ tự xác định. List Interface định nghĩa các phương thức để tương tác với list cũng như các phần tử bên trong list. Tương tự như Set Interface, List Interface cũng được kế thừa và có đầy đủ các phương thức của Collection Interface. Một số class thực thi List Interface thường sử dụng:
5. Queue InterfaceQueue (hàng đợi) là kiểu dữ liệu nổi tiếng với kiểu vào ra FIFO (first-in-first-out hay vào trước ra trước), tuy nhiên với Queue Interface thì queue không chỉ còn dừng lại ở mức đơn giản như vậy mà nó cũng cấp cho bạn các phương thức để xây dựng các queue phức tạp hơn nhiều như priority queue (queue có ưu tiên), deque (queue 2 chiều), … Và cũng giống như 2 interface trước, Queue Interface cũng kế thừa và mang đầy đủ phương thức từ Collection Interface. Một số class về Queue thường sử dụng:
6. Map InterfaceMap (đồ thị/ánh xạ) là kiểu dữ liệu cho phép ta quản lý dữ liệu theo dạng cặp key-value, trong đó key là duy nhất và tương ứng với 1 key là một giá trị value. Map Interface cung cấp cho ta các phương thức để tương tác với kiểu dữ liệu như vậy. Không giống như các interface ở trên, Map Interface không kế thừa từ Collection Interface mà đây là 1 interface độc lập với các phương thức của riêng mình. Dưới đây là một số class về Map cần chú ý:
Nguồn tham khảo:http://vietjack.com/java/collection_trong_java.jsp https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html http://that2u.com/java-collection-framework-phan-1-gioi-thieu-chung/ |