Trong lập trình Java, HashSet
là một lớp con của java.util.Set
và triển khai giao diện Set
. Nó cung cấp một tập hợp không chứa các phần tử trùng lặp, và không duy trì thứ tự của các phần tử. HashSet
cho phép thao tác nhanh với độ phức tạp thời gian gần như là O(1) cho các thao tác cơ bản như thêm, xóa và tra cứu (add, remove, contains).
Để sử dụng HashSet
, bạn cần import gói java.util
và sau đó khởi tạo đối tượng HashSet
như sau:
java
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
// Khởi tạo một HashSet kiểu Integer
HashSet<Integer> numberSet = new HashSet<>();
// Thêm phần tử vào HashSet
numberSet.add(10);
numberSet.add(20);
numberSet.add(30);
numberSet.add(40);
numberSet.add(50);
// In ra số lượng phần tử trong HashSet
System.out.println("Số lượng phần tử trong HashSet: " + numberSet.size());
// Kiểm tra xem một phần tử có tồn tại trong HashSet hay không
boolean isExist = numberSet.contains(30);
System.out.println("Có tồn tại phần tử 30 trong HashSet: " + isExist);
// Xóa một phần tử khỏi HashSet
numberSet.remove(40);
// In ra tất cả các phần tử trong HashSet sử dụng vòng lặp for-each
for (int number : numberSet) {
System.out.println(number);
}
// Xóa tất cả các phần tử trong HashSet
numberSet.clear();
// Kiểm tra xem HashSet có trống không
System.out.println("HashSet có trống không: " + numberSet.isEmpty());
}
}
Lưu ý rằng khi sử dụng HashSet
, phần tử được xem như duy nhất dựa vào việc so sánh giá trị của chúng, do đó, các đối tượng với cùng giá trị sẽ bị coi là trùng lặp và chỉ được chấp nhận một lần trong tập hợp. Để so sánh và xác định các phần tử là duy nhất, Java sẽ sử dụng phương thức hashCode()
và equals()
được định nghĩa trong đối tượng của bạn (nếu không, nó sẽ sử dụng các phương thức mặc định của lớp Object
). Do đó, nếu bạn muốn sử dụng lớp đối tượng tự định nghĩa trong HashSet
, hãy chắc chắn rằng bạn đã định nghĩa đầy đủ các phương thức này.