zoukankan      html  css  js  c++  java
  • java定制化排序,多个条件排序

    方法针对的排序情况:

    有一个实体类命名为test,其中共有三个指标需要排序展示,

    one优先级》two优先级》three优先级

    在指标属性one一样的时候会查询two指标比较

    @org.junit.Test
        public void test() {
            List<Test> testList = new ArrayList<>();
            Test one = new Test(1300, 20, 12);
            testList.add(one);
            Test two = new Test(200, 10, 22);
            testList.add(two);
            Test Three = new Test(400, 50, 32);
            testList.add(Three);
            Test four = new Test(500, 30, 25);
            testList.add(four);
            Test five = new Test(600, 70, 89);
            testList.add(five);
            Test six = new Test(700, 90, 59);
            testList.add(six);
            Test seven = new Test(800, 20, 75);
            testList.add(seven);
            Test eight = new Test(900, 21, 35);
            testList.add(eight);
            Test nine = new Test(250, 20, 61);
            testList.add(nine);
            Test ten = new Test(900, 21, 89);
            testList.add(ten);
            testList.sort((o1, o2) -> o1.getOne() > o2.getOne()
                            ? 1 : o1.getOne() < o2.getOne()
                            ? -1 : o1.getTwo() > o2.getTwo()
                            ? 1 : o1.getTwo() < o2.getTwo()
                            ? -1 :  o1.getThree() > o2.getThree()
                            ? 1 : o1.getThree() < o2.getThree()
                            ?  -1 :  0);
            for (Test test : testList) {
                System.out.println(test.getOne() + "	" + test.getTwo() + "	" + test.getThree());
            }
        }
    
        class Test {
            private int one ;
            private int two;
            private int three;
    
            public Test(int one, int two, int three) {
                this.one = one;
                this.two = two;
                this.three = three;
            }
    
            public int getOne() {
                return one;
            }
    
            public void setOne(int one) {
                this.one = one;
            }
    
            public int getTwo() {
                return two;
            }
    
            public void setTwo(int two) {
                this.two = two;
            }
    
            public int getThree() {
                return three;
            }
    
            public void setThree(int three) {
                this.three = three;
            }
        }
    

    排序结果展示

  • 相关阅读:
    随笔1
    随笔
    shared_ptr<> reset
    c++模板库(简介)
    rockmongo用法
    随笔
    TEXT宏,TCHAR类型
    sprintf
    基于SOA的银行系统架构
    大纲6 信息化规划与管理
  • 原文地址:https://www.cnblogs.com/licunzhi/p/9358677.html
Copyright © 2011-2022 走看看