Java 中的有序集合接口示例
有序集合接口的名称中包含术语"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 经常用于存储需要快速搜索的大量信息。