📅  最后修改于: 2023-12-03 15:08:54.749000             🧑  作者: Mango
TreeSet是Java中实现了SortedSet接口的一种集合类,它可以通过自然排序或者比较器排序来维护其元素的顺序。TreeSet中不允许出现重复元素,同时它的操作具有较高的时间复杂度(O(log n)),具有高效的查找、插入、删除等操作。
以下是如何在Java中创建带有列表的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成功按元素值进行了升序排列。
在某些情况下,我们需要使用自定义的比较器对元素进行排序,比如按照元素长度或者元素属性等进行排序。那么我们就需要通过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成功按照字符串长度进行了升序排列。
如果我们需要创建一个带有列表的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的介绍,希望对你有所帮助。