public class Main10 { public static void main(String[] args) { TreeSet<String> ts = new TreeSet<>(new ComPareByLen()); ts.add("aaaaaa"); ts.add("z"); ts.add("wc"); ts.add("nba"); System.out.println(ts); } }
class ComPareByLen implements Comparator<String> { @Override public int compare(String o1, String o2) {//按照字符串长度比较 int num = o1.length() - o2.length(); return num == 0?o1.compareTo(o2):num; } }
一个例子:
package cn.jkc.collection3; import java.util.ArrayList; import java.util.Comparator; import java.util.TreeSet; /** * * * @author xty * 在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典顺序),而且还不能去除重复 * */ public class Patest1 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); addList(list); TreeSet<String> ts = new TreeSet<>(new Comparator<String>() { @Override public int compare(String s1, String s2) { int num = s1.compareTo(s2); return num == 0 ? 1 : num; } }); ts.addAll(list); list.clear(); list.addAll(ts); System.out.println(list); } private static void addList(ArrayList<String> list) { list.add("ddddd"); list.add("abbb"); list.add("abbb"); list.add("cccccc"); } }