Trong lập trình Java, LinkedHashSet
là một lớp trong cấu trúc dữ liệu Set. Nó kế thừa từ lớp HashSet
và triển khai giao diện Set
để cung cấp một tập hợp không có các phần tử trùng lặp, nhưng bảo đảm thứ tự lưu giữ các phần tử chúng ta thêm vào.
Điểm nổi bật của LinkedHashSet
so với HashSet
là việc nó giữ thứ tự chèn của các phần tử. Khi duyệt qua LinkedHashSet
, các phần tử sẽ được trả về theo thứ tự chúng đã được thêm vào.
Dưới đây là cách tạo và sử dụng LinkedHashSet
trong Java:
- Khởi tạo một đối tượng
LinkedHashSet
trống:
java
import java.util.LinkedHashSet;
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
- Thêm phần tử vào
LinkedHashSet
:
java
linkedHashSet.add("apple");
linkedHashSet.add("banana");
linkedHashSet.add("orange");
- Duyệt qua
LinkedHashSet
:
java
for (String fruit : linkedHashSet) {
System.out.println(fruit);
}
Kết quả đầu ra sẽ là:
apple
banana
orange
Chúng ta thấy rằng các phần tử được trả về theo thứ tự chúng được thêm vào.
Một số điểm cần lưu ý về LinkedHashSet
:
- Do nó bảo đảm thứ tự lưu giữ, việc duyệt và thêm phần tử vào
LinkedHashSet
sẽ có hiệu năng chậm hơn so vớiHashSet
. Tuy nhiên, với số lượng phần tử nhỏ, sự khác biệt về hiệu năng không đáng kể. LinkedHashSet
không cho phép phần tử trùng lặp. Nếu bạn thêm một phần tử đã tồn tại trong tập hợp, nó sẽ không thay đổi tập hợp và không có thông báo lỗi.LinkedHashSet
không đồng bộ (non-synchronized). Nếu bạn cần sử dụng nó trong môi trường đa luồng (multi-threading), bạn nên thêm đồng bộ hóa để đảm bảo tính toàn vẹn dữ liệu.