中存在的SortedSet接口 JAVAutil 包扩展了中存在的Set接口 收集框架 .它是一个实现数学集合的接口。此接口包含从Set接口继承的方法,并添加了一个功能,用于存储此接口中要以排序方式存储的所有元素。
在上图中,可导航集扩展了排序集接口。由于集合不保留插入顺序,可导航集合接口提供了在集合中导航的实现。实现可导航集的类是TreeSet,它是自平衡树的实现。因此,这个界面为我们提供了一种在这棵树中导航的方法。
宣言: SortedSet接口声明为:
公共接口SortedSet扩展集
排序集的示例:
// Java program to demonstrate the // Sorted Set import java.util.*; class SortedSetExample{ public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Adding elements into the TreeSet // using add() ts.add( "India" ); ts.add( "Australia" ); ts.add( "South Africa" ); // Adding the duplicate // element ts.add( "India" ); // Displaying the TreeSet System.out.println(ts); // Removing items from TreeSet // using remove() ts.remove( "Australia" ); System.out.println( "Set after removing " + "Australia:" + ts); // Iterating over Tree set items System.out.println( "Iterating over set:" ); Iterator<String> i = ts.iterator(); while (i.hasNext()) System.out.println(i.next()); } } |
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa
注: SortedSet的所有元素都必须实现 可比界面 (或被指定的比较国接受)且所有此类要素必须相互可比。相互可比只是指两个对象接受彼此作为其compareTo方法的参数。
创建SortedSet对象
因为SortedSet是一个 界面 ,无法创建SortedSet类型的对象。为了创建一个对象,我们总是需要一个扩展这个列表的类。而且,在引入 仿制药 在Java 1.5中,可以限制可存储在SortedSet中的对象类型。这种类型的安全设置可以定义为:
//Obj是要存储在SortedSet中的对象类型 SortedSet
set=新树集 ();
在SortedSet上执行各种操作
由于SortedSet是一个接口,因此它只能与实现该接口的类一起使用。TreeSet是实现SortedSet接口的类。现在,让我们看看如何在TreeSet上执行一些常用的操作。
1.添加元素: 为了向SortedSet添加元素,我们可以使用 add()方法。 但是,插入顺序不会保留在树集中。在内部,每个元素的值都会按升序进行比较和排序。我们需要注意的是,不允许重复元素,并且忽略所有重复元素。而且,SortedSet不接受空值。
// Java code to demonstrate // the working of SortedSet import java.util.*; class GFG { public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add( "A" ); ts.add( "B" ); ts.add( "C" ); ts.add( "A" ); System.out.println(ts); } } |
[A, B, C]
2.访问元素: 添加元素后,如果我们希望访问这些元素,我们可以使用内置方法,如 包含() , 第一() , 最后() 等
// Java code to demonstrate // the working of SortedSet import java.util.*; class GFG { public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add( "A" ); ts.add( "B" ); ts.add( "C" ); ts.add( "A" ); System.out.println( "Sorted Set is " + ts); String check = "D" ; // Check if the above string exists in // the SortedSet or not System.out.println( "Contains " + check + " " + ts.contains(check)); // Print the first element in // the SortedSet System.out.println( "First Value " + ts.first()); // Print the last element in // the SortedSet System.out.println( "Last Value " + ts.last()); } } |
Sorted Set is [A, B, C] Contains D false First Value A Last Value C
3.删除值: 可以使用 remove()方法 .
// Java code to demonstrate // the working of SortedSet import java.util.*; class GFG{ public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add( "A" ); ts.add( "B" ); ts.add( "C" ); ts.add( "B" ); ts.add( "D" ); ts.add( "E" ); System.out.println( "Initial TreeSet " + ts); // Removing the element b ts.remove( "B" ); System.out.println( "After removing element " + ts); } } |
Initial TreeSet [A, B, C, D, E] After removing element [A, C, D, E]
4.遍历SortedSet: 在SortedSet中迭代有多种方法。最著名的是使用 增强的for循环。
// Java code to demonstrate // the working of SortedSet import java.util.*; class GFG { public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add( "C" ); ts.add( "D" ); ts.add( "E" ); ts.add( "A" ); ts.add( "B" ); ts.add( "Z" ); // Iterating though the SortedSet for (String value : ts) System.out.print(value + ", " ); System.out.println(); } } |
A, B, C, D, E, Z,
实现SortedSet接口的类是TreeSet。
树集: 集合框架中实现的TreeSet类是SortedSet接口和SortedSet扩展的实现 设置接口 。除了以排序格式存储元素外,它的行为类似于一个简单的集合。TreeSet使用树数据结构进行存储。对象按排序的升序存储。但我们可以使用方法按降序进行迭代 TreeSet。下降迭代器() .让我们看看如何使用此类创建sortedset对象。
// Java program to demonstrate the // creation of SortedSet object using // the TreeSet class import java.util.*; class GFG { public static void main(String[] args) { SortedSet<String> ts = new TreeSet<String>(); // Adding elements into the TreeSet // using add() ts.add( "India" ); ts.add( "Australia" ); ts.add( "South Africa" ); // Adding the duplicate // element ts.add( "India" ); // Displaying the TreeSet System.out.println(ts); // Removing items from TreeSet // using remove() ts.remove( "Australia" ); System.out.println( "Set after removing " + "Australia:" + ts); // Iterating over Tree set items System.out.println( "Iterating over set:" ); Iterator<String> i = ts.iterator(); while (i.hasNext()) System.out.println(i.next()); } } |
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa
数据集接口的分类方法
以下是SortedSet界面中的方法。在这里,“*”表示这些方法是 设置接口 .
方法 | 描述 |
---|---|
*添加(元素) | 此方法用于向集合中添加特定元素。仅当指定的元素在集合中不存在时,函数才会添加该元素;否则,如果元素在集合中已存在,函数将返回False。 |
*addAll(收藏) | 此方法用于将上述集合中的所有元素附加到现有集合中。元素是随机添加的,不遵循任何特定顺序。 |
*清除() | 此方法用于删除集合中的所有元素,但不删除集合。集合的引用仍然存在。 |
比较器() | 此方法返回用于对该集合中的元素进行排序的比较器,如果该集合使用其元素的自然排序,则返回null。 |
*包含(元素) | 此方法用于检查集合中是否存在特定元素。 |
*CONTANSALL(收藏) | 此方法用于检查集合是否包含给定集合中的所有元素。如果集合包含所有元素,则此方法返回true;如果缺少任何元素,则返回false。 |
第一() | 此方法返回此集合中的第一个(最低)元素。 |
hashCode() | 此方法用于获取集合的此实例的hashCode值。它返回一个整数值,该整数值是集合的这个实例的hashCode值。 |
耳机(元件) | 此方法返回的元素少于排序集中的元素。 |
*isEmpty() | 此方法用于检查分拣数据集是否为空。 |
最后() | 此方法返回集合中存在的最后一个(最高)元素。 |
*移除(元素) | 此方法用于从集合中删除给定元素。如果集合中存在指定的元素,则此方法返回True,否则返回False。 |
*removeAll(收藏) | 此方法用于从集合中删除集合中存在的所有元素。如果此集合因调用而更改,则此方法返回true。 |
*保留(收藏) | 此方法用于保留给定集合中提到的集合中的所有元素。如果此集合因调用而更改,则此方法返回true。 |
*大小() | 此方法用于获取集合的大小。这将返回一个表示元素数的整数值。 |
子集(元素1、元素2) | 该方法从包含element1和element2之间元素的集合中返回一个排序子集。 |
尾套(元素) | 此方法返回大于或等于排序集中存在的元素的元素。 |
*toArray() | 此方法用于形成与集合相同元素的数组。 |