字符串排序

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        char[] ch = {'z','a', 'c', 'c', 'd', 'e'};
        //字符串转为字符串
        String str = new String(ch);

        //升序
        Arrays.sort(ch);
        System.out.println("升序后的字符数组:"+Arrays.toString(ch));

        //降序
        //先转化为字符串数组再排序(利用Java8 Labmbda)
        String[] chString=new String(ch).split("");
        Arrays.sort(chString,(l,r)-> r.charAt(0)-l.charAt(0));
        System.out.println("降序后的字符数组:"+Arrays.toString(chString));

        String[] s={"aa","a","c","deaa","aaaaa","hyfrd","dwq"};
        Arrays.sort(s,(l,r)->l.length()-r.length());
        System.out.println("字符串数组按长度升序:"+Arrays.toString(s));
        Arrays.sort(s,(l,r)->r.length()-l.length());
        System.out.println("字符串数组按长度降序:"+Arrays.toString(s));

        Arrays.sort(s,(l,r)->{
            for(int i=0;i<Math.min(l.length(),r.length());i++){
                if(l.charAt(i)>r.charAt(i)){
                    return 1;
                }else if(l.charAt(i)<r.charAt(i)){
                    return -1;
                }
            }
            return l.length()-r.length();
        });
        System.out.println("先按字母升序再按长度升序:"+Arrays.toString(s));

        /**自建类排序
         * 
         * 自建类数组排序
         * p:自建类数组名
         * 假设自建类有age属性,下面就是按年龄降序进行对象排序
         * Arrays.sort(p,(l,r)->r.getAge()-r.getAge());
         * 这种方法本质上还是实现Compartor接口,但是如果接口只有1个抽象方法一般可以用labmbda简化书写
         */
    }
}

排序结果图:

字符串排序

 关于集合:

import java.util.*;

public class Main {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
        List<String> list=new ArrayList<>();
        list.add("abddf");
        list.add("dd");
        list.add("c");
        list.add("bdddddd");
        //Collections.sort(list,(l,r)->r.length()-l.length());//实现Compartor的compare函数(按长度递减排序)
        //Collections.sort(list,Comparator.reverseOrder());//逆序(降序)
        Collections.sort(list,(l,r)->{//首字母排序
            return r.charAt(0)-l.charAt(0);
        });
        //Collections.sort(list);//默认升序
        System.out.println(list);

    }
}