Java: HashSet
Lớp HashSet thực thi interface Set. HashSet tạo một collection sử dụng bảng băm (hashtable) để lưu trữ dữ liệu. Bảng băm là một cấu trúc dữ liệu lưu trữ thông tin bằng cách ánh xạ khóa của mỗi phần tử dữ liệu vào một vị trí hoặc chỉ mục của mảng. Khóa là một số nhận dạng được sử dụng để tìm hoặc tìm kiếm một giá trị trong bảng băm. Ý nghĩa cụ thể của các khóa trong bất kỳ bảng băm nào hoàn toàn phụ thuộc vào cách bảng được sử dụng và dữ liệu nó chứa. Việc chuyển đổi một khóa thành mã băm của nó được thực hiện tự động. Mã của người dùng không thể lập chỉ mục trực tiếp bảng băm.
Lớp HashSet này cho phép phần tử null. Tuy nhiên, không có gì đảm bảo về thứ tự lặp lại của tập hợp và thứ tự đó không đổi theo thời gian.
Lớp HashSet này cung cấp hiệu suất thời gian không đổi cho các hoạt động cơ bản. Để lặp lại, thời gian phải tỷ lệ thuận với tổng kích thước của thể hiện HashSet và dung lượng của thể hiện HashMap hỗ trợ.
Lưu ý - Để có hiệu suất lặp tốt, không đặt công suất ban đầu quá cao hoặc hệ số tải quá thấp.
Các hàm tạo của lớp HashSet như sau:
HashSet(): Hàm tạo tạo một bộ băm mặc định. Công suất ban đầu mặc định và hệ số tải lần lượt là 16 và 0,75.
HashSet(Collection <? extends E> c): Hàm tạo tạo một tập hợp băm dựa trên các phần tử đã cho trong bộ sưu tập được chỉ định.
HashSet(int size): Hàm tạo tạo một bộ băm với kích thước đã cho và với hệ số tải mặc định là 0,75.
HashSet(int size, float fillRatio): Hàm tạo tạo một tập hợp băm với kích thước và tỷ lệ lấp đầy đã cho. Tỷ lệ lấp đầy xác định dung lượng của tập hợp trước khi nó được thay đổi kích thước lên trên.
Ví dụ sau thể hiện việc tạo một thể hiện của lớp HashSet.
Set<String> words = new HashSet<String>();