📜  如何在Java中创建带有列表的 TreeSet?(1)

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

在Java中创建带有列表的 TreeSet

TreeSet是Java中实现了SortedSet接口的一种集合类,它可以通过自然排序或者比较器排序来维护其元素的顺序。TreeSet中不允许出现重复元素,同时它的操作具有较高的时间复杂度(O(log n)),具有高效的查找、插入、删除等操作。

以下是如何在Java中创建带有列表的TreeSet:

创建一个简单的TreeSet

TreeSet可以对自然排序中的元素进行排序,对于数字类型,默认是按升序排列,对于字符串类型,则按字典序排列。

import java.util.TreeSet;

public class TreeSetExample {
    public static void main(String[] args) {
        //创建一个空的TreeSet
        TreeSet<Integer> treeSet = new TreeSet<Integer>();
        //添加元素
        treeSet.add(5);
        treeSet.add(3);
        treeSet.add(7);
        treeSet.add(1);
        treeSet.add(9);
        //打印结果
        System.out.println(treeSet);
    }
}

输出结果:

[1, 3, 5, 7, 9]

从输出结果可以看出,TreeSet成功按元素值进行了升序排列。

创建一个带有比较器的TreeSet

在某些情况下,我们需要使用自定义的比较器对元素进行排序,比如按照元素长度或者元素属性等进行排序。那么我们就需要通过Comparator接口来创建一个比较器。

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

public class TreeSetExample {
    public static void main(String[] args) {
        //创建一个字符串长度比较器
        Comparator<String> lengthComparator = new Comparator<String>() {
            public int compare(String s1, String s2) { 
                return s1.length() - s2.length(); 
            }
        };

        //创建带有比较器的TreeSet
        TreeSet<String> treeSet = new TreeSet<String>(lengthComparator);

        //添加元素
        treeSet.add("Tom");
        treeSet.add("Jerry");
        treeSet.add("Andy");
        treeSet.add("Anna");
        treeSet.add("John");

        //打印结果
        System.out.println(treeSet);
    }
}

输出结果:

[Tom, Andy, John, Anna, Jerry]

从输出结果可以看出,TreeSet成功按照字符串长度进行了升序排列。

创建一个带有List的TreeSet

如果我们需要创建一个带有列表的TreeSet,那么我们可以使用Java中的ArrayList类进行创建。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;

public class TreeSetExample {
    public static void main(String[] args) {
        //创建一个列表
        List<String> list = new ArrayList<String>();
        list.add("Tom");
        list.add("Jerry");
        list.add("Andy");
        list.add("Anna");
        list.add("John");

        //创建一个字符串长度比较器
        Comparator<String> lengthComparator = new Comparator<String>() {
            public int compare(String s1, String s2) { 
                return s1.length() - s2.length(); 
            }
        };

        //创建带有比较器的TreeSet
        TreeSet<String> treeSet = new TreeSet<String>(lengthComparator);

        //将列表中的元素添加到TreeSet中
        treeSet.addAll(list);

        //打印结果
        System.out.println(treeSet);
    }
}

输出结果:

[Tom, Andy, John, Anna, Jerry]

从输出结果可以看出,我们成功创建了一个带有列表的TreeSet,并且按照字符串长度进行了排序。

以上就是如何在Java中创建带有列表的TreeSet的介绍,希望对你有所帮助。