HashSet trong java với ví dụ cụ thể

HashSet là một class implement từ Set interface được hỗ trợ bởi bảng băm (HashTable). Nó không đảm bảo thứ tự của các phần tử và thứ tự của chúng cũng có thể thay đổi theo thời gian. HashSet cũng có thể chứa các phần tử null.

Một số điểm chú ý trong HashSet:

  • HashSet không đảm bảo thứ tự của các phần tử.
  • Các phần tử trong HashSet không được trùng lặp. Nếu bạn thêm phần tử mới trùng với phần tử cũ thì nó sẽ được ghi đè bởi giá trị mới.
  • Các phần tử được thêm vào sẽ có thứ tự khác nhau không theo quy tắc thêm vào trước sẽ đầu tiên thêm sau vào sau vì chúng được thêm dựa trên bảng băm.

Constructor trong HashSet

  1. HashSet h = new HashSet();
  2. HashSet h = new HashSet(int initialCapacity);
  3. HashSet h = new HashSet(int initialCapacity, float loadFactor);
  4. HashSet h = new HashSet(Collection C);

Ví dụ HashSet

import java.util.HashSet;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        HashSet<String> h = new HashSet<String>();

        // Adding elements into HashSet usind add()
        h.add("HGA");
        h.add("SHI");
        h.add("LFD");

        // Displaying the HashSet
        System.out.println(h);
        System.out.println("List contains HGA or not:" +
                h.contains("HGA"));

        // Removing items from HashSet using remove()
        h.remove("HGA");
        System.out.println("List after removing HGA:" + h);

        // Iterating over hash set items
        System.out.println("Iterating over list:");
        Iterator<String> i = h.iterator();
        while (i.hasNext())
            System.out.println(i.next());
    }
}

Output:

[HGA, SHI, LFD]
List contains HGA or not:true
List after removing HGA:[SHI, LFD]
Iterating over list:
SHI
LFD

Note

Trong thực tế HashSet sử dụng HashMap để lưu các phần tử bên trong. Như các bạn cũng biết thì HashMap lưu các phần tử dưới dạng key – value. Để đáp ứng điều đó thì HashSet thêm phần tử vào HashMap với key – value giống nhau.

Method trong HashSet

  1. boolean add(E e): Thêm phần tử vào HashSet. Nếu phần tử đã tồn tại trả về false.
  2. void clear(): Xóa tất cả các phần tử trong HashSet.
  3. boolean contains(Object o): Kiểm tra sự tồn tại của phần tử trong HashSet.
  4. boolean remove(Object o): Xóa phần tử khỏi HashSet, trả về false nếu phần tử không tồn tại trong HashSet
  5. boolean isEmpty(): Trả về true nếu HashSet không chứa bất kỳ phần tử nào.
  6. int size(): Trả về số lượng phần tử trong HashSet.
  7. Object clone(): Copy HashSet mới từ một HashSet cho trước.
5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x