java --- colección TreeSet

Colección TreeSet

案例:
将一系列字符串“hello”,"helloworld","how","do","you","what"存入TreeSet集合,要求按照字符串长度进行排序

Aquí usamos un comparador externo:

        String a1="hello";
        String a2="helloworld";
        String a3="how";
        String a4="do";
        String a5="you";
        String a6="what";
        TreeSet<String> set = new TreeSet<String>((s1,s2)->s1.length()-s2.length());
        //(s1,s2)->s1.length()-s2.length()	外部比较器
        set.add(a1);
        set.add(a2);
        set.add(a3);
        set.add(a4);
        set.add(a5);
        set.add(a6);
        System.out.println(set);

No es difícil encontrar que el "usted" en la cadena falta (se sobrescribe).
Inserte la descripción de la imagen aquí
Por lo tanto, debemos hacer un juicio. Si la longitud de las dos cadenas es igual, las dos cadenas se establecen en una longitud de forma predeterminada, para que la salida pueda salir.

String a1="hello";
        String a2="helloworld";
        String a3="how";
        String a4="do";
        String a5="you";
        String a6="what";
        TreeSet<String> set = new TreeSet<>((s1,s2)->{
    
    
            if (s1.length()!=s2.length()){
    
    
                return s1.length()-s2.length();
            }else {
    
    
                return 1;   //如果长度相等,TreeSet自带去重,就会只保留一个,
                //因此这里将这种情况的 0 改为 1或-1     1 表示默认前面的字符串的长度大     -1表示默认后面的字符串的长度大
            }
        });
        set.add(a1);
        set.add(a2);
        set.add(a3);
        set.add(a4);
        set.add(a5);
        set.add(a6);
        System.out.println(set);

Mostrar resultados
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44889894/article/details/111625952
Recomendado
Clasificación