📜  java 树集排序 - Java (1)

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

Java树集排序

Java中的树集是一种基于树的数据结构,实现了 Set 和 SortedSet 接口。由于树集能够自动进行排序和去重,所以在 Java 开发中被广泛应用。

TreeSet

TreeSet是Java中的一种实现了SortedSet接口的集合,它是基于红黑树实现的。TreeSet中的元素会按照自然顺序排序或者按照Comparator规定的顺序进行排序。

自然排序

TreeSet中的元素如果是基本数据类型,会按照数值大小进行排序,如果是对象,需要实现Comparable接口并重写compareTo方法。

下面是一个例子:

import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        TreeSet<Integer> treeSet = new TreeSet<>();
        treeSet.add(5);
        treeSet.add(3);
        treeSet.add(8);
        System.out.println(treeSet);
    }
}

输出结果为:

[3, 5, 8]
比较器排序

如果要实现自己定义的排序方式,就需要使用比较器Comparator。Comparator可以在创建TreeSet对象时作为参数传入。

下面是一个例子:

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

public class Main {
    public static void main(String[] args) {
        TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        treeSet.add(5);
        treeSet.add(3);
        treeSet.add(8);
        System.out.println(treeSet);
    }
}

输出结果为:

[8, 5, 3]
总结

通过使用Java中的TreeSet,我们可以很方便地实现集合元素的排序和去重,而且支持自然排序和比较器排序,可以满足不同业务场景的需求。