TreeSet练习 根据字符串长度排序

String类已经实现了Comparable接口,我们可以根据TreeSet提供的构造器传入自己的比较器。

public class Set4 {
    public static void main(String[] args) {

        Set<String> stringSet = new TreeSet<>(new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                int len = s1.length() - s2.length();
                int i = s1.compareTo(s2);
                return len == 0 ? i : len;
            }
        });

//        Set<String> stringSet = new TreeSet<>((s1,s2)->{
//            int len = s1.length() - s2.length();
//            int i = s1.compareTo(s2);
//            return len == 0 ? i:len;
//        });

        stringSet.add("王小二");
        stringSet.add("abc");
        stringSet.add("df");
        stringSet.add("xyz");
        stringSet.add("a");
        stringSet.add("sdf");
        System.out.println(stringSet);
    }
}

运行结果

[a, df, abc, sdf, xyz, 王小二]
posted @ 2020-10-10 00:04  雨中遐想  阅读(234)  评论(0编辑  收藏  举报