Lớp LinkedHashSet trong Java
Như chúng ta đã biết, LinkedHashSet là một phiên bản mở rộng của HashSet. HashSet không đảm bảo thứ tự sắp xếp của các phần tử. Trong khi đó, LinkedHashSet duy trì thứ tự chèn phần tử. HashSet sử dụng đối tượng HashMap bên trong để lưu trữ các phần tử của nó, còn LinkedHashSet sử dụng đối tượng LinkedHashMap bên trong để lưu trữ và xử lý các phần tử của nó. Trong bài viết dưới đây, chúng ta sẽ tìm hiểu LinkedHashSet là gì, hoạt động như thế nào? Cùng theo dõi nhé!
Mục lục nội dung
1. Lớp LinkedHashSet trong Java
Lớp LinkedHashSet trong Java kế thừa HashSet.
Lớp LinkedHashSet duy trì một linked list của các entry trong Set, theo thứ tự chúng đã được chèn. Điều này cho phép tính lặp lại theo thứ tự chèn qua Set đó.
Đó là, khi tuần hoàn qua một LinkedHashSet bởi sử dụng một Iterator, các phần tử sẽ được trả về theo thứ tự như khi chúng đã được chèn.
Hash code sau đó được sử dụng như là index, tại đó dữ liệu mà được liên kết với key đã được lưu trữ. Phép biến đổi của key này vào trong hash code được thực hiện tự động.
Lớp LinkedHashSet hỗ trợ 4 constructor. Mẫu constructor đầu tiên xây dựng một hash set mặc định.
LinkedHashSet( )
Mẫu Constructor thứ hai khởi tạo hash set bởi sử dụng các phần tử trong c.
LinkedHashSet(Collection c)
Dung lượng tăng tự động khi phần tử được thêm vào tới Hash đó.
LinkedHashSet(int capacity)
Mẫu Constructor thứ tư khởi tạo cả dung lượng và fill ratio (cũng được gọi là dung lượng tải) của hash set từ các tham số của nó.
LinkedHashSet(int capacity, float fillRatio)
2. Ví dụ
Chương trình sau minh họa các phương thức được hỗ trợ bởi lớp LinkedHashSet trong Java:
import java.util. * ;
public class HashSetDemo {
public static void main(String args[]) {
// tao mot hash set
LinkedHashSet hs = new LinkedHashSet();
// them cac phan tu toi hash set
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
System.out.println(hs);
}
}
Nó sẽ cho kết quả sau:
[B, A, D, E, C
Trên đây là bài viết của eLib.VN về lớp LinkedHashSet trong Java. Hy vọng với những kiến thức trên bạn đọc có thể áp dụng vào quá trình học lập trình Java của mình để tạo ra những đoạn code tối ưu nhất. Chúc các bạn thành công!
Tham khảo thêm
- doc Collection trong Java
- doc Collection Interface trong Java
- doc List Interface trong Java
- doc Set Interface trong Java
- doc SortedSet Interface trong Java
- doc Map Interface trong Java
- doc Map.Entry Interface trong Java
- doc SortedMap Interface trong Java
- doc Lớp LinkedList trong Java
- doc Lớp ArrayList trong Java
- doc Lớp HashSet trong Java
- doc Lớp TreeSet trong Java
- doc Lớp HashMap trong Java
- doc Lớp TreeMap trong Java
- doc Thuật toán Collection trong Java
- doc Sử dụng Iterator trong Java
- doc Sử dụng Comparator trong Java