Lớp LinkedHashSet Java: Hướng Dẫn Thân Thiện Cho Người Mới Bắt Đầu
Giới Thiệu
Xin chào các con nhà hát ma thuật Java tương lai! Hôm nay, chúng ta sẽ bắt đầu hành trình hấp dẫn vào thế giới Java LinkedHashSet. Đừng lo nếu bạn chưa từng viết một dòng mã code - tôi sẽ là người hướng dẫn thân thiện của bạn, và chúng ta sẽ khám phá chủ đề này cùng nhau, bước به bước.
Hãy tưởng tượng bạn đang thu thập những hình dánh độc đáo cho tập album của mình, nhưng bạn muốn nhớ thứ tự mà bạn đã nhận chúng. Đó chính là điều gì mà LinkedHashSet làm trong Java - nó là một tập hợp lưu trữ các phần tử độc đáo (như những hình dánh của bạn) và nhớ thứ tự bạn thêm chúng. Có gì ngon lành phải không?
Hãy bước vào và xem thử tập hợp kỳ diệu này hoạt động như thế nào!
Khai Báo Lớp
Trong Java, LinkedHashSet là một phần của gói java.util. Để sử dụng nó, chúng ta cần phải nhập nó trước. Dưới đây là cách chúng ta làm điều đó:
import java.util.LinkedHashSet;
Bây giờ, hãy tạo LinkedHashSet đầu tiên của chúng ta:
LinkedHashSet<String> myStickers = new LinkedHashSet<>();
Trong ví dụ này, chúng ta đã tạo một LinkedHashSet sẽ lưu trữ các đối tượng String. Phần
Tham Số
LinkedHashSet không có bất kỳ tham số cụ thể nào của riêng nó, nhưng nó kế thừa một số từ các lớp cha của nó. Các tham số quan trọng nhất là:
- initialCapacity: Khả năng đầu tiên của LinkedHashSet.
- loadFactor: Đơn vị đo lường mức đầy tập hợp LinkedHashSet trước khi nó được thay đổi kích thước.
Đừng lo quá nhiều về những điều này ngay bây giờ. Java đặt các giá trị mặc định tốt, vì vậy bạn không cần phải xác định chúng trừ khi bạn đang làm điều gì rất cụ thể.
Các Hàm Khởi Tạo Lớp
LinkedHashSet cung cấp một số hàm khởi tạo. Hãy xem xét những hàm phổ biến nhất:
-
Hàm khởi tạo mặc định:
LinkedHashSet<String> set1 = new LinkedHashSet<>();
Điều này tạo một LinkedHashSet trống với khả năng đầu tiên mặc định (16) và hệ số tải (0.75).
-
Hàm khởi tạo với khả năng đầu tiên:
LinkedHashSet<String> set2 = new LinkedHashSet<>(20);
Điều này tạo một LinkedHashSet trống với khả năng đầu tiên là 20.
-
Hàm khởi tạo với một tập hợp khác:
ArrayList<String> list = new ArrayList<>(); list.add("Red"); list.add("Blue"); LinkedHashSet<String> set3 = new LinkedHashSet<>(list);
Điều này tạo một LinkedHashSet chứa tất cả các phần tử từ tập hợp được chỉ định (list trong trường hợp này).
Các Phương Pháp Lớp
Bây giờ, hãy xem xét một số phương pháp hữu ích nhất của LinkedHashSet. Tôi sẽ trình bày chúng trong một bảng để dễ tham khảo:
Method | Mô Tả |
---|---|
add(E e) | Thêm phần tử được chỉ định vào tập hợp nếu nó chưa tồn tại |
remove(Object o) | Xóa phần tử được chỉ định khỏi tập hợp nếu nó có tồn tại |
contains(Object o) | Trả về true nếu tập hợp chứa phần tử được chỉ định |
size() | Trả về số lượng phần tử trong tập hợp |
clear() | Xóa tất cả các phần tử khỏi tập hợp |
isEmpty() | Trả về true nếu tập hợp không chứa phần tử |
Hãy xem các phương pháp này trong hành động:
LinkedHashSet<String> colors = new LinkedHashSet<>();
// Thêm các phần tử
colors.add("Red");
colors.add("Green");
colors.add("Blue");
System.out.println("Colors: " + colors); // Output: Colors: [Red, Green, Blue]
// Thêm một trùng lặp (sẽ không thêm)
colors.add("Red");
System.out.println("Colors after adding duplicate: " + colors); // Output: Colors after adding duplicate: [Red, Green, Blue]
// Kiểm tra xem phần tử có tồn tại hay không
System.out.println("Contains Yellow? " + colors.contains("Yellow")); // Output: Contains Yellow? false
// Xóa một phần tử
colors.remove("Green");
System.out.println("Colors after removing Green: " + colors); // Output: Colors after removing Green: [Red, Blue]
// Lấy kích thước
System.out.println("Number of colors: " + colors.size()); // Output: Number of colors: 2
// Kiểm tra xem tập hợp có trống hay không
System.out.println("Is the set empty? " + colors.isEmpty()); // Output: Is the set empty? false
// Xóa tập hợp
colors.clear();
System.out.println("Colors after clearing: " + colors); // Output: Colors after clearing: []
Ví Dụ Sử Dụng Spliterator() Để Lặp qua Các Mục của LinkedHashSet
Bây giờ, hãy xem một tính năng nâng cao hơn: Spliterator. Nó giống như một con trỏ siêu mạnh có thể được sử dụng cho việc xử lý song song. Đừng lo nếu điều đó có vẻ phức tạp - chúng ta sẽ giữ cho nó đơn giản!
Dưới đây là ví dụ về cách sử dụng Spliterator với LinkedHashSet:
LinkedHashSet<String> fruits = new LinkedHashSet<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
fruits.add("Date");
Spliterator<String> spliterator = fruits.spliterator();
// Sử dụng Spliterator để in các phần tử
spliterator.forEachRemaining(fruit -> System.out.println("Fruit: " + fruit));
Mã này sẽ đầu ra:
Fruit: Apple
Fruit: Banana
Fruit: Cherry
Fruit: Date
Phương pháp spliterator() trả về một Spliterator, mà chúng ta có thể sử dụng để lặp qua LinkedHashSet của mình. Phương pháp forEachRemaining() áp dụng hành động được chỉ định vào mỗi phần tử. Trong trường hợp này, chúng ta đang in mỗi loại trái cây.
Và thế là đã xong! Bạn vừa học được các khái niệm cơ bản về LinkedHashSet của Java. Hãy nhớ, luyện tập là chìa khóa để thành thạo, vì vậy đừng sợ thử nghiệm với các khái niệm này. Thử tạo LinkedHashSet của riêng bạn và chơi với các phương pháp của nó. Trước khi bạn biết nó, bạn sẽ trở thành một nhà vua LinkedHashSet!
Chúc mừng mãi mãi, các nhà hát ma thuật Java tương lai! ?
Credits: Image by storyset