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

📅  最后修改于: 2023-12-03 15:06:51.549000             🧑  作者: Mango

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

在处理数组时,有时候我们需要删除其中的重复条目,以便更好地进行后续操作。这时,我们可以使用Java中的TreeSet类来完成这个任务。下面是一个使用TreeSet从数组中删除重复条目的Java程序的示例:

import java.util.Arrays;
import java.util.TreeSet;

public class RemoveDuplicatesFromArray {
    public static void main(String[] args) {
        Integer[] arrayWithDuplicates = {1, 2, 3, 1, 2, 3, 4, 5};

        // 使用TreeSet自动去重
        TreeSet<Integer> uniqueSet = new TreeSet<>(Arrays.asList(arrayWithDuplicates));

        // 将去重后的元素转换回数组
        Integer[] arrayWithoutDuplicates = uniqueSet.toArray(new Integer[uniqueSet.size()]);

        // 打印去重后的数组
        System.out.println(Arrays.toString(arrayWithoutDuplicates));
    }
}

该程序的执行结果为:

[1, 2, 3, 4, 5]

可以看到,使用TreeSet自动去重后,数组中的重复元素已经被删除,只剩下了唯一的元素。

下面是该程序的解释说明:

  1. 首先,我们定义了一个包含重复元素的数组 arrayWithDuplicates
  2. 然后,我们创建了一个TreeSet对象 uniqueSet,并将数组 arrayWithDuplicates 转换成一个List对象,并将其传递给TreSet的构造函数中。由于TreeSet中的元素是唯一的,因此TreeSet会自动去重。
  3. 接下来,我们使用 toArray 方法将去重后的元素转换回数组,并将其赋值给 arrayWithoutDuplicates 变量。
  4. 最后,我们打印了去重后的数组。

因此,本程序通过使用TreeSet自动去重,实现了从数组中删除重复条目的功能。

同时,我们还可以自定义比较器来进行去重操作,下面是一个示例:

import java.util.Arrays;
import java.util.Comparator;
import java.util.TreeSet;

public class RemoveDuplicatesFromArray2 {
    public static void main(String[] args) {
        String[] arrayWithDuplicates = {"a", "b", "c", "A", "B", "C"};

        // 使用自定义比较器去重
        TreeSet<String> uniqueSet = new TreeSet<>(Comparator.comparing(String::toLowerCase));
        uniqueSet.addAll(Arrays.asList(arrayWithDuplicates));

        // 将去重后的元素转换回数组
        String[] arrayWithoutDuplicates = uniqueSet.toArray(new String[uniqueSet.size()]);

        // 打印去重后的数组
        System.out.println(Arrays.toString(arrayWithoutDuplicates));
    }
}

该程序使用自定义的比较器来进行去重操作,忽略了大小写,最终输出结果为:

[a, b, c]

因此,无论是使用自动去重还是自定义比较器去重,都可以方便地实现从数组中删除重复条目的功能。