一个小练习,下面的程序作用是将list中的元素进行排序,你能发现下面程序的错误吗?
import java.util.*;
public class SortDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("cccd");
list.add("ccc");
list.add("aaa");
list.add("aaa");
list.add("bbb");
list.add("ddad");
list.add("ddd");
sort(list);
System.out.println(list);
}
public static void sort(ArrayList<String> list) {
TreeSet<String> treeSet=new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int num=o1.length()-o2.length();//长度比较为主要条件
return num==0?o1.compareTo(o2):num;//长度相等时,字符串比较为次要条件
}
});
treeSet.addAll(list);
list=new ArrayList<>(treeSet);
}
}
|
|