package Work1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class DictionariesDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("list");
list.add("sum");
list.add("list");
list.add("avg");
list.add("dictionaries");
list.add("demo");
ComparableStr comparableStr = new ComparableStr();
comparableStr.sort(list);
for(String li:list){
System.out.println(li);
}
}
}
package Work1;
import java.util.Comparator;
import java.util.List;
import java.lang.String;
import java.util.TreeSet;
public class ComparableStr {
public void sort(List<String> list){
TreeSet<String> treeSet= new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int flag = o1.compareTo(o2);
if(flag>=0){
flag=1;
}
return flag;
}
});
treeSet.addAll(list);
list.clear();
list.addAll(treeSet);
}
}
TreeSet一般要实现Comparable接口,如果没有实现这个接口那么就无法区分大小关系,且在TreeSet中如要进行排序,那就要将所有字段进行比较,就是说在TreeSet中是依靠comparato()方法返回的是不是0来判断是不是重复元素的,现在相同时返回了1相当于不是重复的;