TreeSet问题
来源:5-5 关于TreeSet的使用
慕用4915122
2020-11-23 21:33:04

为啥在TreeSet要传入实现类做为参数?而在list集合中不用啊。
List集合和Set集合在做排序时有啥区别?他俩是不是都差不多?
1回答
同学你好,1. TreeSet需要传递参数,是在TreeSet类中已经定义好了,同学按照规定调用即可。
public TreeSet(Collection<? extends E> c)构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
2. set集合是无序的无法进行排序,如果set集合想要进行排序,则需要结合TreeSet集合。例如:
public static void main( String[] args ) {
Set<String> set = new HashSet<>();
set.add("1");
set.add("2");
set.add("5");
set.add("4");
set.add("3");
System.out.println(set.toString());
Set<String> sortSet = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);//降序排列
}
});
sortSet.addAll(set);
System.out.println(sortSet.toString());
}
注:一般不会使用set进行排序,同学大概了解一下即可。
相似问题