//第一种 :上课的做法
/*ArrayList<String> list = new ArrayList<>();
list.add("ccc");
list.add("ccc");
list.add("aaa");
list.add("aaa");
list.add("bbb");
list.add("ddd");
list.add("ddd");
sort(list);
System.out.println(list);*/
/*
public static void sort(ArrayList<String> list) {
//1.创建TreeSet
TreeSet<String> ts =new TreeSet<>(new Comparator<String>(){
public int compare(String s1,String s2){
int num =s1.compareTo(s2);
return num==0?1:num;//--------------保留重复元素.
}
});
//2. 我们用比较器
//3.list集合添加到treeset中 排序保留重复
ts.addAll(list);
//4/清空list 在将treeset添加到list中
list.clear();
list.addAll(ts);
}
//然后:我发现了原来ArrayList也可以用间接Comparator接口
/**练习 排序 不剔除重复.*/
/*ArrayList<String> list = new ArrayList<>();
list.add("ccc");
list.add("ccc");
list.add("aaa");
list.add("aaa");
list.add("eee");
list.add("bbb");
list.add("ddd");
list.add("ddd");
Collections.sort(list, new Mycomparator());//------------通过collections的方法实现ArrayList的排序 而且list本身可重复
for (String string : list) {
System.out.println(string);
}*/
}//main
}//class
class Mycomparator implements Comparator<String>{//---------自定义比较器
public int compare(String s1,String s2){
return s1.compareTo(s2);
}
}
|
|