用示例排序 Java 中的 Set 接口
出现在 java.util 包中的 SortedSet 接口扩展了出现在收集框架中的 Set 接口。这是一个实现数学集合的接口。此接口包含从 Set 接口继承的方法,并添加了一个功能,用于存储此接口中的所有元素,以便以排序的方式进行存储。
在上图中,可导航集扩展了排序集界面。由于集合不保留插入顺序,可导航的集合接口提供了在集合中导航的实现。实现可导航集的类是 TreeSet,它是一个自平衡树的实现。因此,这个界面为我们提供了一种在这个树中导航的方法。
声明:sorted set 接口声明为:
公共接口排序集扩展集
排序集示例:
// 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());
}
}
Output:
[Australia, India, South Africa]
Set after removing Australia:[India, South Africa]
Iterating over set:
India
South Africa
注意:排序集合的所有元素必须实现可比接口(或被指定的比较器接受),并且所有这些元素必须相互可比。相互比较简单地说就是两个对象相互接受对方作为它们的 compareTo 方法的参数。
创建排序集对象
由于排序集是一个接口,因此不能创建排序集类型的对象。我们总是需要一个扩展这个列表的类来创建一个对象。此外,在 Java 1.5 中引入泛型后,可以限制可存储在 SortedSet 中的对象类型。这种类型安全集合可以定义为:
// Obj 是要存储在 sorted set sorted setset = new TreeSet();
对排序集执行各种操作
由于 SortedSet 是一个接口,它只能与实现该接口的类一起使用。TreeSet 是实现 SortedSet 接口的类。现在,让我们看看如何在 TreeSet 上执行一些常用的操作。
1。添加元素:为了给 SortedSet 添加一个元素,我们可以使用 add()方法。但是,插入顺序不会保留在树集中。在内部,对于每个元素,值都是按升序进行比较和排序的。我们需要注意,重复的元素是不允许的,所有重复的元素都会被忽略。此外,排序集不接受空值。
// 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);
}
}
Output:
[A, B, C]
2。访问元素:添加元素后,如果想访问元素,可以使用内置的方法,如 contains() 、 first() 、 last() 等。
// 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());
}
}
Output:
Sorted Set is [A, B, C]
Contains D false
First Value A
Last Value C
3。移除值:可以使用移除()方法从排序集中移除值。
// 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);
}
}
Output:
Initial TreeSet [A, B, C, D, E]
After removing element [A, C, D, E]
4。迭代排序集:有多种方法迭代排序集。最著名的一个是使用增强为循环。
// 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();
}
}
Output:
A, B, C, D, E, Z,
实现 SortedSet 接口的类是 TreeSet。T3】
TreeSet: TreeSet 类在 collections 框架中实现,是 SortedSet 接口的实现,SortedSet 扩展了 Set 接口。它的行为就像一个简单的集合,只是它以排序的格式存储元素。TreeSet 使用树形数据结构进行存储。对象以排序的升序存储。但是我们可以使用方法treeset . Degending Terrar()进行降序迭代。让我们看看如何使用这个类创建 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());
}
}
Output:
[Australia, India, South Africa]
Set after removing Australia:[India, South Africa]
Iterating over set:
India
South Africa
排序集合接口的方法
以下是 SortedSet 接口中存在的方法。这里“*”表示方法是设置界面的一部分。
| 方法 | 描述 | | *添加(元素) | 此方法用于向集合中添加特定元素。只有当集合中没有指定的元素时,函数才会添加元素,否则,如果集合中已经有元素,函数将返回 False。 | | *addAll(集合) | 此方法用于将上述集合中的所有元素追加到现有集合中。元素是随机添加的,没有遵循任何特定的顺序。 | | *晴() | 此方法用于从集合中移除所有元素,但不删除集合。集合的引用仍然存在。 | | 【比较仪() | 此方法返回用于对该集合中的元素进行排序的比较器,如果该集合使用其元素的自然排序,则返回 null。 | | *包含(元素) | 此方法用于检查集合中是否存在特定元素。 | | *containsAll(集合) | 此方法用于检查集合是否包含给定集合中存在的所有元素。如果集合包含所有元素,则此方法返回 true 如果缺少任何元素,则返回 false。 | | 第() | 此方法返回该集合中的第一个(最低的)元素。 | | 【hashcode() | 此方法用于获取该集合实例的哈希码值。它返回一个整数值,该整数值是该集合实例的哈希码值。 | | 耳机(元素) | 此方法返回的元素少于排序集中的元素。 | | *isEmpty() | 此方法用于检查排序集是否为空。 | | 最后() | 此方法返回集合中最后(最高)的元素。 | | *移除(元素) | 此方法用于从集合中移除给定的元素。如果集合中存在指定的元素,此方法返回真,否则返回假。 | | *removeAll(集合) | 此方法用于从集合中移除集合中存在的所有元素。如果此集合因调用而改变,则此方法返回 true。 | | *零售(集合) | 此方法用于保留给定集合中提到的集合中的所有元素。如果此集合因调用而改变,则此方法返回 true。 | | *大小() | 此方法用于获取集合的大小。这将返回一个表示元素数量的整数值。 | | 【子集(元素 1、元素 2) | 此方法从包含 element1 和 element2 之间的元素的集合中返回一个已排序的子集。 | | 尾套(元素) | 此方法返回大于或等于排序集中存在的元素的元素。 | | * toaarray() | 此方法用于形成与集合元素相同元素的数组。 |
版权属于:月萌API www.moonapi.com,转载请注明出处