Java中的SortedSet接口及示例

中存在的SortedSet接口 JAVAutil 包扩展了中存在的Set接口 收集框架 .它是一个实现数学集合的接口。此接口包含从Set接口继承的方法,并添加了一个功能,用于存储此接口中要以排序方式存储的所有元素。

null

Set-TreeSet-SortedSet-In-Java-Collection

在上图中,可导航集扩展了排序集接口。由于集合不保留插入顺序,可导航集合接口提供了在集合中导航的实现。实现可导航集的类是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() 此方法用于形成与集合相同元素的数组。
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享