So sánh HashMap và HashSet trong Java

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

HashSetHashMap
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