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.
1. Giống nhau của HashMap và HashSet
- Cả hai cấu trúc dữ liệu không duy trì bất kỳ thứ tự cho các phần tử truyền vào.
- Cả hai đều sử dụng phương thức hashCode () và equals () để duy trì tính duy nhất của dữ liệu.
- Cả hai cung cấp cho hiệu suất thời gian là hằng số cho các thao tác chèn (add/ put) và loại bỏ (remove).
- Cả hai đều không đồng bộ (non-synchronized).
2. Khác nhau của HashMap và HashSet
| HashSet | HashMap |
| HashSet 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 HashSet khi bạn cần duy nhất khóa (key). |
Related posts:
Life Cycle of a Thread in Java
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Adding a Newline Character to a String in Java
Java Program to Construct an Expression Tree for an Postfix Expression
Java – Write an InputStream to a File
Converting Strings to Enums in Java
Java Program to Perform Arithmetic Operations on Numbers of Size
Java Program to Implement Interval Tree
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Hướng dẫn Java Design Pattern – Observer
So sánh HashMap và Hashtable trong Java
Java Program to Implement Self organizing List
Java – Get Random Item/Element From a List
Dockerizing a Spring Boot Application
Java 8 Collectors toMap
Java Program to Solve the Fractional Knapsack Problem
Biểu thức Lambda trong Java 8 – Lambda Expressions
Hướng dẫn Java Design Pattern – MVC
Java Program to Implement Knight’s Tour Problem
Using a List of Values in a JdbcTemplate IN Clause
Exploring the New Spring Cloud Gateway
Java Program to Implement HashTable API
Java Program to Implement Shoelace Algorithm
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure)
A Quick Guide to Spring Cloud Consul
Jackson – JsonMappingException (No serializer found for class)
Guide to Spring @Autowired
Lớp lồng nhau trong java (Java inner class)
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement Adjacency List
Lớp HashMap trong Java