📜  使用 TreeSet 从数组中删除重复条目的Java程序

📅  最后修改于: 2022-05-13 01:55:47.283000             🧑  作者: Mango

使用 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.

程序:

  1. 创建一个 TreeSet 对象。
  2. 使用 add() 方法将数组元素添加到 TreeSet。
  3. 打印和显示使用 add(element) 方法复制的数组中的元素。
  4. 从数组中删除重复项后打印和显示数组中的元素。
  5. 使用 size() 方法获取 TreeSet 的大小。
  6. 使用toArray()方法将上面的 TreeSet 转换为数组进行转换。
  7. 迭代数组元素。
  8. 从中删除重复条目后打印并显示上面的字符串数组。

执行:

 在下面的示例中,我们将 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]