Lớp Treeset Trong Java

Class TreeSet là 1 phần của java collection framework.Nó implement từ bỏ interface NavigableSet, lớp này được thừa kế từ SortedSet.

Bạn đang xem: Lớp treeset trong java

Lớp TreeSet trong nội bộ áp dụng TreeMap nhằm tàng trữ những phần tử.Các phần tử vào một TreeSet được sắp xếp theo vật dụng trường đoản cú tự nhiên của chúng.

Quý khách hàng cũng có thể hỗ trợ một phương thức đối chiếu thiết lập cấu hình Comparator đến TreeSet trên thời gian khởi sinh sản để cho phép nó sắp xếp những thành phần dựa vào bộ đối chiếu được hỗ trợ.

*

SortedSet interface hỗ trợ các hàm để lưu lại cho những bộ phận được bố trí. Và NavigableSet interface hỗ trợ những hàm để điều hướng trải qua SortedSet.

Ví dụ, search thành phần lớn hơn hoặc nhỏ dại rộng phần tử đang mang lại, tra cứu phần tử trước tiên với phần tử ở đầu cuối trong SortedSet.

Vì lớp TreeSet kế thừa tự NavigableSet interface, nên nó bao gồm cách tiến hành của cả NavigableSet cũng tương tự SortedSet.

Một số điểm sáng đặc biệt quan trọng của TreeSet trong Java :

TreeSet ko đựng các phần tử giống nhau.Các thành phần trong một TreeSet được thu xếp theo trang bị từ tự nhiên của bọn chúng, hoặc dựa trên một bộ đối chiếu Comparator thiết lập cấu hình được cung cấp tại thời điểm khởi chế tạo ra TreeSet.TreeSet chẳng thể chứa những giá trị null.TreeSet thực hiện TreeMap nhằm lưu trữ những phần tử.TreeSet class không phải là một trong thread-safe. Quý khách hàng đề xuất đồng điệu hóa cụ thể quyền truy vấn mặt khác vào TreeSet vào môi trường nhiều luồng.

Xem thêm: 1 Tsp Là Gì ? Tbsp Là Gì? Cách Đổi Đơn Vị Đo Lường Cách Quy Đổi Các Đơn Vị Đo Lường Này

Tạo một TreeSet

1. Simple TreeSet

lấy một ví dụ dưới đây cho thấy thêm giải pháp chế tác một TreeSet và thêm những phần tử bắt đầu vào nó.TreeSet sẽ được sắp xếp dựa vào sản phẩm công nghệ từ tự nhiên và thoải mái của các phần tử.

import java.util.SortedSet;import java.util.TreeSet;public class CreateTreeSetExample public static void main(String<> args) // Creating a TreeSet SortedSet fruits = new TreeSet(); // Adding new elements to a TreeSet fruits.add("Banana"); fruits.add("Apple"); fruits.add("Pineapple"); fruits.add("Orange"); System.out.println("Fruits Set : " + fruits); // Duplicate elements are ignored fruits.add("Apple"); System.out.println("After adding duplicate element "Apple" : " + fruits); // This will be allowed because it"s in lowercase. fruits.add("banana"); System.out.println("After adding "banana" : " + fruits); # OutputFruits Set : After adding duplicate element "Apple" : After adding "banana" :

2. TreeSet cùng với thiết lập cấu hình so sánh tùy chỉnh

ví dụ như sau cho biết thêm giải pháp tạo ra một TreeSet bởi thiết lập đối chiếu thiết lập cấu hình.Đó là bố trí tên theo lắp thêm từ A-B.

import java.util.Comparator;import java.util.SortedSet;import java.util.TreeSet;public class TreeSetCaseInsensitiveExample public static void main(String<> args) // Creating a TreeSet with a custom Comparator (Case Insensitive Order) SortedSet fruits = new TreeSet(String.CASE_INSENSITIVE_ORDER); /* The above TreeSet with the custom Comparator is the concise size of the following: SortedSet fruits = new TreeSet(new Comparator()
Override public int compare(String s1, String s2) return s1.compareToIgnoreCase(s2); ); */ // Adding new elements to lớn a TreeSet fruits.add("Banana"); fruits.add("Apple"); fruits.add("Pineapple"); fruits.add("Orange"); System.out.println("Fruits Set : " + fruits); // Now, lowercase elements will also be considered as duplicates fruits.add("banana"); System.out.println("After adding "banana" : " + fruits); # OutputFruits Set : After adding "banana" :

3. TreeSet cùng với tùy chỉnh thiết lập Comparator (Thđọng từ giảm dần)

Ví dụ dưới đây minc họa bí quyết sinh sản một TreeSet bằng một cỗ đối chiếu tùy chỉnh cấu hình, thu xếp các phần tử theo thiết bị từ bớt dần.

import java.util.Comparator;import java.util.SortedSet;import java.util.TreeSet;public class TreeSetDescendingOrderExample public static void main(String<> args) // Creating a TreeSet with a custom Comparator (Descending Order) SortedSet fruits = new TreeSet(Comparator.reverseOrder()); /* The above TreeSet with the custom Comparator is the concise khung of the following: SortedSet fruits = new TreeSet(new Comparator()
Override public int compare(String s1, String s2) return s2.compareTo(s1); ); */ // Adding new elements lớn a TreeSet fruits.add("Banana"); fruits.add("Apple"); fruits.add("Pineapple"); fruits.add("Orange"); System.out.println("Fruits Set : " + fruits); # OutputFruits Set :

4. Truy cập các bộ phận của một TreeSet

Ví dụ dưới đây triển khai các bài toán sau :

Xác định form size của một TreeSet.Kiểm tra xem một phần tử có mãi sau vào TreeSet hay không.Tìm thành phần đầu tiên của một TreeSet.Tìm bộ phận sau cùng của một TreeSet.Tìm phần tử lớn hơn thành phần đã cho trong TreeSet.Tìm thành phần nhỏ dại hơn thành phần sẽ mang đến vào TreeSet.

import java.util.TreeSet;public class AccessTreeSetElementsExample public static void main(String<> args) TreeSet students = new TreeSet(String.CASE_INSENSITIVE_ORDER); students.add("Julia"); students.add("Robert"); students.add("Mark"); students.add("Steven"); System.out.println("Students TreeSet : " + students); // Finding the kích cỡ of a TreeSet System.out.println("Number of elements in the TreeSet : " + students.size()); // Check if an element exists in the TreeSet String name = "Julia"; if(students.contains(name)) System.out.println("TreeSet contains the element : " + name); else System.out.println("TreeSet does not contain the element : " + name); // Navigating through the TreeSet System.out.println("First element : " + students.first()); System.out.println("Last element : " + students.last()); name = "Robert"; System.out.println("Element just greater than " + name + " : " + students.higher(name)); System.out.println("Element just lower than " + name + " : " + students.lower(name)); # OutputStudents TreeSet : Number of elements in the TreeSet : 4TreeSet contains the element : JuliaFirst element : JuliaLast element : StevenElement just greater than Robert : StevenElement just lower than Robert : Mark

5. TreeSet với các đối tượng người dùng vày người dùng xác định

lấy một ví dụ vào phần này cho thấy cách tạo thành một TreeSet của các đối tượng người sử dụng vày người dùng khẳng định.

Vì TreeSet yêu cầu giữ lại những đối tượng người dùng được sắp xếp, bạn đề xuất triển khai Comparable interface vào lớp bởi người tiêu dùng khẳng định cùng cung cấp Việc xúc tiến cho hàm compareTo() hoặc hỗ trợ Comparator cấu hình thiết lập tại thời gian tạo nên TreeSet.

import java.util.Comparator;import java.util.Objects;import java.util.SortedSet;import java.util.TreeSet;class Employee implements Comparable private int id; private String name; public Employee(int id, String name) this.id = id; this.name = name; public int getId() return id; public void setId(int id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; // Two Employees are equal if their IDs are equal
Override public boolean equals(Object o) if (this == o) return true; if (o == null
Override public String toString() return "Employee" + "id=" + id + ", name="" + name + """ + ""; public class TreeSetUserDefinedObjectExample public static void main(String<> args) // Creating a TreeSet of User Defined Objects. /* The requirement for a TreeSet of user defined objects is that 1. Either the class should implement the Comparable interface và provide the implementation for the compareTo() function. 2. Or you should provide a custom Comparator while creating the TreeSet. */ SortedSet employees = new TreeSet(); // TreeSet uses the compareTo() method of the Employee class lớn compare two employees and sort them employees.add(new Employee(1010, "Rajeev")); employees.add(new Employee(1005, "Sachin")); employees.add(new Employee(1008, "Chris")); System.out.println("Employees (sorted based on Employee class"s compareTo() function)"); System.out.println(employees); // Providing a Custom Comparator (This comparator compares the employees based on their Name) employees = new TreeSet(Comparator.comparing(Employee::getName)); employees.add(new Employee(1010, "Rajeev")); employees.add(new Employee(1005, "Sachin")); employees.add(new Employee(1008, "Chris")); System.out.println(" Employees (sorted based on the supplied Comparator)"); System.out.println(employees); # OutputEmployees (sorted based on Employee class"s compareTo() function)Employees (sorted based on the supplied Comparator)

6. Kết luận

Trong bài viết này, bạn đang tìm hiểu một TreeSet trong Java là gì, bí quyết chế tác một TreeSet, giải pháp gửi một bộ so sánh tùy chỉnh cấu hình cho Treeset để biến hóa lắp thêm trường đoản cú bố trí của những bộ phận, cách truy cập những phần tử của Treeset, giải pháp sa thải các thành phần xuất phát điểm từ 1 TreeSet cùng phương pháp chế tạo ra một TreeSet của những đối tượng người dùng vì người dùng xác định.