老师,这个怎么回事了
来源:5-4 Comparable和Comparator的区别
慕楠枫桥
2021-06-02 21:09:32
public class Demo1 {
public static void main(String[] args) {
HashSet<String> hashSet = new HashSet<>();
hashSet.add("he");
hashSet.add("chyao");
hashSet.add("tncng");
hashSet.add("rea");
hashSet.add("utiale");
Iterator<String > iterator = hashSet.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next()+"\t");
}
System.out.println();
Collections.sort(hashSet);
Collections.sort(hashSet, new Comparator<T>() {
@Override
public int compare(T o1, T o2) {
return 0;
}
});
}
}
1回答
同学你好
1、 Collections.sort()方法中不能传入set集合,如下

2、HashSet是无序集合,所以针对该集合排序时需要结合TreeSet,如下
public static void main(String[] args) {
HashSet<String> hashSet = new HashSet<>();
hashSet.add("he");
hashSet.add("chyao");
hashSet.add("tncng");
hashSet.add("rea");
hashSet.add("utiale");
Iterator<String> iterator = hashSet.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\t");
}
System.out.println();
Set<String> sortSet = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);//降序排列
}
});
sortSet.addAll(hashSet);
Iterator<String> iterator1 = sortSet.iterator();
while (iterator1.hasNext()) {
System.out.print(iterator1.next() + "\t");
}
}
关于TreeSet集合在下一小节有讲解,同学可以先向后学
https://class.imooc.com/lesson/1439#mid=33149
另外一般情况下很少使用set集合进行排序,所以同学了解一下即可
祝学习愉快~
相似问题