老师,这个怎么回事了

来源: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回答

好帮手慕阿园

2021-06-03

同学你好

1、 Collections.sort()方法中不能传入set集合,如下

http://img.mukewang.com/climg/60b845ee092ab96505900102.jpg

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集合进行排序,所以同学了解一下即可

祝学习愉快~


0

0 学习 · 16556 问题

查看课程