HashSet là gì?
HashSet là một kiểu dữ liệu tích hợp sẵn trong Java và theo thuật ngữ thông thường, bạn có thể nói “HashSet là một tập hợp các phần tử duy nhất không có thứ tự.” Hãy xem một ví dụ cơ bản:
- Nó tạo ra một bộ sưu tập ( bộ sưu tập có nghĩa là một đơn vị đối tượng, ví dụ: ArrayList, LinkedList, Vector, v.v.) sử dụng bảng băm để lưu trữ.
- Các giá trị trùng lặp không được phép trong HashSet.
- Bạn có thể chèn các giá trị “null” trong HashSet.
- Không có thứ tự chèn nào được duy trì. Vì vậy, nếu bạn đang muốn chèn các mục theo thứ tự, HashSet sẽ là một lựa chọn không tồi cho yêu cầu của bạn.
- Nếu bạn muốn nhận/truy xuất một phần tử trong thời gian không đổi (O(1)) thì HashSet là một trong những cách tiếp cận tốt nhất bạn có thể thực hiện.
Phương thức HashSet.contains() là gì?
HashSet.contains() là một phương thức boolean để kiểm tra xem một mục có xuất hiện trong một phiên bản của HashSet hay không. Nói một cách đơn giản, liệu tập hợp có chứa phần tử mong muốn hay không. Java.util.HashSet cung cấp một triển khai hiệu quả cho nó. Hãy để chúng tôi chỉ cho bạn cách bạn có thể sử dụng nó một cách hiệu quả để giải quyết các truy vấn của mình.chứa () với số nguyên
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Declare your hash set
HashSet digits = new HashSet();
digits.add(0);
digits.add(1);
digits.add(2);
digits.add(3);
digits.add(4);
digits.add(5);
digits.add(null);
System.out.println("All elements in hashset:\t" + digits);
// Try adding duplicates
digits.add(5);
digits.add(2);
System.out.println("After adding duplicates: \t" + digits);
System.out.println("\n-------Using Contains Method-------");
// Check out if the following digits exist in the hashset
System.out.println("digits.contains(0) : " + digits.contains(0));
System.out.println("digits.contains(2) : " + digits.contains(2));
System.out.println("digits.contains(3) : " + digits.contains(7));
System.out.println("digits.contains(null) : " + digits.contains(null));
}
}
đầu ra
Tất cả các phần tử trong hàm băm: [0, null, 1, 2, 3, 4, 5]
Sau khi thêm các bản sao: [0, null, 1, 2, 3, 4, 5]
-------Sử dụng phương pháp chứa-------
chữ số.contains(0): đúng
chữ số.contains(2): đúng
chữ số.contains(3): sai
chữ số.contains(null): đúng
chứa () với Chuỗi
Hãy xem một ví dụ khác về phương thức contains() với Strings .
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Try working with another hash set of String type
HashSet rainbow = new HashSet();
// Adding elements into HashSet using add()
rainbow.add("Red");
rainbow.add("Orange");
rainbow.add("Yellow");
rainbow.add("Green");
rainbow.add("Blue");
rainbow.add("Indigo");
rainbow.add("Violet");
// Let's traverse the hashset
System.out.println("Traversing the rainbow:");
for (String i : rainbow){
System.out.println(i);
}
// Check out if rainbow contains this color or not
System.out.println("\n-------Using Contains Method-------");
System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
System.out.println("rainbow.contains(\"White\"): \t" + rainbow.contains("White"));
System.out.println("rainbow.contains(\"Lavender\"): \t" + rainbow.contains("Lavender"));
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
// Remove a color from rainbow using remove()
rainbow.remove("Red");
// Now consume set contains() method again to check if it's still present
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
System.out.println("\nAfter removing Red: " + rainbow);
}
}
đầu ra
Vượt qua cầu vồng:
Màu đỏ
màu tím
Màu vàng
Màu xanh da trời
xanh đậm
Quả cam
Màu xanh lá
-------Sử dụng phương pháp chứa-------
Rainbow.contains("Vàng"): đúng
Rainbow.contains("Trắng"): sai
Rainbow.contains("Lavender"): sai
Rainbow.contains("Đỏ"): đúng
Rainbow.contains("Đỏ"): sai
Sau khi loại bỏ Màu đỏ: [Tím, Vàng, Xanh lam, Chàm, Cam, Xanh lục]
Như bạn có thể thấy thứ tự đầu ra khác với thứ tự đưa các phần tử vào Hashset.
GO TO FULL VERSION