Java 中的有序集合接口示例

javaobject oriented programmingprogramming

有序集合接口的名称中包含术语"Sorted",表示它包含按升序排列的所有元素。它扩展了 Set 接口的属性。

在本文中,我们将讨论有序集合接口并对其执行一些操作。但是,为了正确理解 SortedSet,我们需要了解集合接口的层次结构。

集合接口

在 Java 中,集合是一个对象,或者为了简单起见,我们可以说它是一个容器,它允许我们将多个对象分组到一个单元中。集合接口是所有集合框架接口的根。我们可以对集合执行各种操作,例如添加、删除、迭代、搜索和检索对象。请注意,它们不能与 int 或 double 等原始数据类型一起使用。但是,Java 提供了包装器类,允许将原始数据类型用作对象。我们将使用这些对象来处理集合接口。

让我们讨论一下集合接口的子接口 -

List - 它是 Java 集合接口的子接口。它是一种线性结构,以顺序方式存储和访问每个元素。

Set - 它是 Java 集合接口的子接口,不允许重复值。它类似于数学集合。

Queue - 它提供队列数据结构的功能。队列遵循先进先出 (FIFO) 方法。

SortedSet 接口

正如我们之前讨论过的,它按升序存储元素。由于它扩展了 Set 接口,因此它也不允许重复值,并且可以访问 Set 接口提供的所有方法。

集合接口在"java.util"包中可用。要将此包导入到您的程序中,请使用以下命令:

import java.util.*;

此处,"*"表示我们正在导入此包中可用的所有类。

要使用 SortedSet 的功能,我们将使用实现 SortedSet 接口的树集类。

语法

SortedSet< element_Type > collection_name = new TreeSet<>();

此处,element_Type 是包装器类,而不是原始数据类型。

除了 Set 接口的方法外,它还包括以下方法 -

  • first() - 返回第一个位置的对象。

  • last() - 返回最后一个位置的对象。

  • subSet() - 它接受两个参数并打印给定参数之间可用的所有对象。

  • headSet() - 它接受一个参数并返回从开始到指定参数的对象。

  • tailSet() - 它接受一个参数并返回从指定参数到集合末尾的对象。

示例 1

在下面的示例中,我们将创建一个名为"treeSt"的树集,类型为字符串,并使用内置方法集合接口的'add()',我们将向树集添加一些元素。它将按升序打印元素,而不管输入元素的顺序如何。

import java.util.*;
public class Srtset {
   public static void main(String args[]) {
      // 创建树集
      SortedSet<String> treeSt = new TreeSet<>();
      // 在树集中添加元素
      treeSt.add("Tutorix");
      treeSt.add("Simply");
      treeSt.add("Easy");
      treeSt.add("Learning");
      treeSt.add("Tutorials");
      treeSt.add("Point");
      System.out.println("Elements of the given set: " + treeSt);
   }
}

输出

Elements of the given set: [Easy, Learning, Point, Simply, Tutorials, Tutorix]

示例 2

以下示例说明了我们在本文前面讨论过的 SortedSet 接口的所有内置方法的用法。

import java.util.*;
public class Srtset {
   public static void main(String args[]) {
    // 创建树集
    SortedSet<String> treeSt = new TreeSet<>();
    // 在树集中添加元素
    treeSt.add("Tutorix");
    treeSt.add("Simply");
    treeSt.add("Easy");
    treeSt.add("Learning");
    treeSt.add("Tutorials");
    treeSt.add("Point");
    System.out.println("给定集合中的元素:" + treeSt);
    String frst = treeSt.first();
    System.out.println("访问给定集合的第一个元素:" + frst);
    String end = treeSt.last();
    System.out.println("访问给定集合的最后一个元素:" + end);
    System.out.println("访问给定集合的子集:" + treeSt.subSet("Simply", "Tutorix"));
    System.out.println("访问集合的前两个元素:" + treeSt.headSet("Point"));
    System.out.println("访问集合的最后三个元素:" + treeSt.tailSet("Simply"));
  }
}

输出

给定集合中的元素:[Easy, Learning, Point, Simply, Tutorials, Tutorix]
访问给定集合的第一个元素:Easy
访问给定集合的最后一个元素:Tutorix
访问给定集合的子集:[Simply, Tutorials]
访问集合的前两个元素:[Easy, Learning]
访问集合的最后三个元素:[Simply, Tutorials, Tutorix]

结论

由于对象是按排序(即升序)存储的,因此在 SortedSet 接口的情况下,访问和检索时间会变得更快。由于这一出色特性,SortedSet 经常用于存储需要快速搜索的大量信息。


相关文章