• 字符串排序


    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);
    
        }
    }
    不一样的烟火
  • 相关阅读:
    多点触控(包括拖拽控件)的例子
    绑定当前对象例子——Tag="{Binding}"
    绑定自己Self
    按键(ESC ,F1,F2等)——wpf的命令处理方法
    C#基础:值类型、引用类型与ref关键字
    生成事件命令
    Prism——Region
    组合模式的一个案例说明
    Laravel 学习记录
    【Linux学习】3.Linux常见配置文件
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11874045.html
Copyright © 2020-2023  润新知