使用 TreeSet 从数组中删除重复条目的Java程序
TreeSet 的特点是主要关注它被广泛用于删除数据结构中的重复项,如下所示:
- TreeSet 实现了 SortedSet 接口。因此,不允许重复值,并且将是剩余值。
- TreeSet 中的对象按排序和升序存储。
- TreeSet 不保留元素的插入顺序,而是按键对元素进行排序。
- 如果我们依赖于默认的自然排序顺序,那么被插入到树中的对象应该是同类的和可比较的。 TreeSet 不允许插入 Heterogeneous 对象。如果我们尝试添加异构对象,它将在运行时抛出 classCastException。
方法: Set 的 add() 方法
在Java中,它在上下文中用于将特定元素添加到 Set 集合中。仅当指定的元素不存在于集合中时,该函数才添加元素,否则,如果该元素已存在于集合中,则函数返回 False。
句法:
boolean add(E element)
Where, E is the type of element maintained
by this Set collection.
程序:
- 创建一个 TreeSet 对象。
- 使用 add() 方法将数组元素添加到 TreeSet。
- 打印和显示使用 add(element) 方法复制的数组中的元素。
- 从数组中删除重复项后打印和显示数组中的元素。
- 使用 size() 方法获取 TreeSet 的大小。
- 使用toArray()方法将上面的 TreeSet 转换为数组进行转换。
- 迭代数组元素。
- 从中删除重复条目后打印并显示上面的字符串数组。
执行:
在下面的示例中,我们将 Array 的每个元素添加到 TreeSet 稍后检查重复项。最后,将TreeSet的所有元素放入Array中,并将所有剩余的空格放入Array中,并打印出该数组的元素。
例子
Java
// Java Program to remove duplicates entries
// from an Array using TreeSet
// Importing Arrays and TreeSet class from
// java.util package
import java.util.Arrays;
import java.util.TreeSet;
// Class to remove duplicates
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Input custom entries in an array
// String type
// Custom inputs
String[] input
= new String[] { "Hello", "hi", "Wow",
"cute", "thanks", "hi",
"Aww", "cute", "baby",
"beloved", "Aww" };
// Converting Array to String and printing it
System.out.print(
"Initial String Array(Containing Duplicates) : "
+ (Arrays.toString(input)));
// Creating an object of TreeSet
TreeSet dupliCheckr = new TreeSet();
// Adding array elements in TreeSet
// For added elements in TreeSet
for (String element : input) {
// Displaying duplicate entries
if (!dupliCheckr.add(element)) {
// Print and display elements in an array
// which are duplicated.
System.out.println(
"Duplicate Data entered : " + element);
}
}
// Next line
System.out.println();
// Print and display elements in an array
// after removing duplicates from it.
System.out.println(
"TreeSet(After Removing Duplicates) : "
+ dupliCheckr);
// Next line
System.out.println();
// Getting size of TreeSet using size() method
int length = dupliCheckr.size();
// Converting above TreeSet to arrays
// Using toArray() method
input = dupliCheckr.toArray(input);
// Iterating over array elements
for (int i = length; i < input.length; i++)
input[i] = null;
// Print and display above string array
// after removing duplicate entries from it
System.out.println("Final String Array is : "
+ Arrays.toString(input));
}
}
输出
Initial String Array(Containing Duplicates) : [Hello, hi, Wow, cute, thanks, hi, Aww, cute, baby, beloved, Aww]Duplicate Data entered : hi
Duplicate Data entered : cute
Duplicate Data entered : Aww
TreeSet(After Removing Duplicates) : [Aww, Hello, Wow, baby, beloved, cute, hi, thanks]
Final String Array is : [Aww, Hello, Wow, baby, beloved, cute, hi, thanks, null, null, null]