Java TreeSet 特殊方法
Java 环境中的 TreeSet 类是一个主要用于存储树的容器接口集。此类中有两种不同的方式。
AbstractSet 类 - 它是 Java 集合框架的一部分,是一个集合接口。
NavigableSet 接口 - 它是 Java 集合中的一个可导航集合集。
在 Java 环境中,TreeSet 继承了 AbstractSet 类并贯穿 NavigableSet。TreeSet 实现的一些重要方面 -
它以唯一数据作为输入。
不保存数据的插入顺序。
按升序对元素进行排序。
线程不安全。
让我们进一步讨论 TreeSet 类的更多标准。
什么是 TreeSet 类以及它是如何工作的?
TreeSet 类提供了 Java 集合中树数据结构的算法。这是 Java 中 SortedSet 接口的一部分。排序以自然方式维护,并提供显式比较器。
此过程使用红黑树;这是一种自平衡二叉搜索树模型。
通过这种特殊的树方法,搜索、删除、添加消耗 O(log(N)) 时间操作可以得到处理。
在 TreeSet 类中,同步始终以手动方式完成。这意味着多个线程访问一组树,然后对其进行修改。
同步某些元素后,它自然地封装了集合。
Java TreeSet 的访问和检索工作相对较快。对于执行搜索操作以访问大量数据来说,它是一个不错的选择。
在此 TreeSet 中,不允许任何重复元素。
TreeSet(): 将创建一个新的空 TreeSet,并根据自然排序进行排序。
TreeSet(Collection<? extends E> c): 将创建一个新的 TreeSet,其中包含集合 c 中提到的元素,并且它们将根据自然排序进行排序。
TreeSet(Comparator<? super E> comparator): 将创建一个新的空 TreeSet,并根据提到的比较器进行排序。
TreeSet(SortedSet<E> s): 将创建一个新的 TreeSet,其中包含排序集 s 中提到的元素,其排序顺序与其相同。
算法
步骤 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 类的树映射包含两个接口。
SortedSet
NavigableSet
数据元素按升序存储,并通过过程进行导航。
在 Java 中实现 TreeSet 特殊方法的方法
方法 1 - 使用 Floor 方法的 TreeSet 特殊方法
方法 2 - 使用 Lower 方法查找元素
方法 3 - 使用 ceiling() 方法查找最小元素
方法 4 - 使用 higher() 方法从树中查找数据
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
Lower 方法
Lower() 方法返回严格小于给定输入元素的最大元素。如果为 null,则列表中不存在元素。
此处遵循的语法为
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
使用 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
使用 higher() 方法从树中查找数据
TreeSet 方法中的 higher() 方法返回一个值小于输入的值。如果未找到所需数据,它将返回 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 环境中提供了许多类型的 TreeSet 特殊方法。在本文中,我们讨论了其中一些方法,并根据其语法构建了一些 Java 代码。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP