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 代码。

更新于: 2023 年 4 月 10 日

154 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.