Java TreeSet特殊方法
Java环境中的TreeSet类是一个容器接口集,主要用于存储树。这个类有两种不同的方式。
在Java环境中,TreeSet继承了AbstractSet类并实现了NavigableSet。TreeSet实现的一些重要方面包括:
- 它以唯一数据作为输入。
-
不保留数据的插入顺序。
-
按升序对元素进行排序。
-
线程不安全。
让我们更详细地讨论一下TreeSet类的标准。
什么是TreeSet类以及它是如何工作的
- TreeSet类在Java集合中提供了树数据结构的算法。它是Java中SortedSet接口的一部分。它通过自然方式进行排序,并提供了显式比较器。
-
此过程使用红黑树,它是一种自平衡二叉搜索树模型。
-
通过这种特殊的树方法,可以处理搜索、删除和添加操作,并且时间复杂度为O(log(N))。
-
在TreeSet类中,同步总是以手动方式进行的。这意味着多个线程访问并修改一组树。
-
在同步一些元素之后,它会自然地封装集合。
-
Java TreeSet的访问和检索工作相对较快。它是进行搜索操作以访问大量数据的良好选择。
-
在TreeSet中,不允许有重复的元素。
-
TreeSet(): 将创建一个新的空TreeSet,并根据自然排序进行排序。
-
TreeSet(Collection c): 将根据集合c中提供的元素创建一个新的TreeSet,并根据自然排序进行排序。
-
TreeSet(Comparator comparator): 将创建一个新的空TreeSet,并根据指定的比较器进行排序。
-
TreeSet(SortedSet s): 将根据排序集s中提供的元素创建一个新的TreeSet,并按相同的顺序进行排序。
步骤
-
步骤1 − 创建一个新的TreeSet类。
-
步骤2 − 扩展AbstractSet类。
-
步骤3 − 将NavigableSet添加到其中。
-
步骤4 − 对输入数据执行排序。
-
步骤5 − 收集一个新的数据集。
-
步骤6 − 迭代整个数据集。
TreeSet的特殊方法 – 语法
public class TreeSet<Element E> extends AbstractSet<Element E> implements NavigableSet<Element E>, Cloneable, Serializable
TreeSet类的treemap包含两个接口。
- SortedSet
-
NavigableSet
数据元素按升序存储,并通过过程进行导航。
实现Java中TreeSet特殊方法的方法
- 方法一 – 使用floor()方法实现TreeSet特殊方法
-
方法二 – 使用lower()方法查找元素
-
方法三 – 使用ceiling()方法找到最小元素
-
方法四 – 使用higher()方法从树中找到数据
方法1:floor()方法
floor()方法返回floor中存在的最大元素,语法为“treeSetObject.floor(argument)”。该方法查找小于或等于输入的元素。如果方法无法找到输入的元素,则返回null。
示例1
import java.util.Set;
import java.util.TreeSet;
public class Floorbytutorialp {
public static void main(String[] args){
TreeSet<Integer> treeSet= new TreeSet<>(Set.of(07, 16, 10, 1997, 2001, 2022));
System.out.println("Tree set = " + treeSet);
System.out.println("floor(16) = "+ treeSet.floor(16));
System.out.println("floor(07) = "+ treeSet.floor(07));
}
}
输出
Tree set = [7, 10, 16, 1997, 2001, 2022]
floor(16) = 16
floor(07) = 7
方法2:Lower方法
Lower()方法返回输入元素之前的最大元素。如果为空,则列表中没有元素。
在此处遵循的语法是:
treeSetObject.lower(argument)
示例2
import java.util.*;
public class TreeSetLowerMethd {
public static void main(String as[]){
TreeSet <Integer>obj = new TreeSet<Integer>();
obj.add(16);
obj.add(07);
obj.add(10);
obj.add(97);
obj.add(2001);
System.out.println("TreeSet: " +obj);
System.out.println("lowest value then 7 : " +obj.lower(7));
}
}
输出
TreeSet: [7, 10, 16, 97, 2001]
lowest value then 7 : null
方法3:使用ceiling()方法找到最小的元素
在Java TreeSet中,ceiling()方法返回最小的数据作为输出。
语法是”treeSetObject.ceiling(argument);”。在这个方法中,输出大于等于输入元素,如果不是,则返回null。
示例3
import java.util.Set;
import java.util.TreeSet;
public class GFG {
public static void main(String[] args){
TreeSet<Integer> treeSet= new TreeSet<>(Set.of(07, 16, 10, 2001, 1997));
System.out.println("tree set = " + treeSet);
System.out.println("ceiling(60) = "+ treeSet.ceiling(60));
System.out.println("ceiling(70) = "+ treeSet.ceiling(70));
System.out.println("ceiling(10) = "+ treeSet.ceiling(10));
}
}
输出
tree set = [7, 10, 16, 1997, 2001]
ceiling(60) = 1997
ceiling(70) = 1997
ceiling(10) = 10
方法4:使用higher()方法从树中找到数据
The higher()方法在TreeSet方法中返回一个小于输入值的数字。如果找不到所需的数据,将返回NULL。
在这里所使用的语法是”treeSetObject.higher(argument) ;”。
示例1
import java.io.*;
import java.util.Set;
import java.util.TreeSet;
public class treeclasstp {
public static void main(String[] args){
TreeSet<Integer> treeSet= new TreeSet<>(Set.of(10, 07, 16, 2001, 97));
System.out.println("tree set = " + treeSet);
System.out.println("higher(1000) = "+ treeSet.higher(1000));
System.out.println("higher(80) = "+ treeSet.higher(80));
System.out.println("higher(5) = "+ treeSet.higher(5));
}
}
输出
tree set = [7, 10, 16, 97, 2001]
higher(1000) = 2001
higher(80) = 97
higher(5) = 7
结果
在Java环境中有很多类型的Tree Set特殊方法可用。在本文中,我们讨论了其中一些方法,并根据它们的语法构建了一些Java代码。