FixedOrderComparator BeanComparator 实现指定排序

实现根据指定的数组排序,切未指定的属性,在指定以前

String[] strs = { "北部网信","其余","合计","南部" };
        Arrays.sort(strs);
        log.info("-{}", JSONObject.toJSONString(strs));
        String[] sorts = { "其余","合计" };
        FixedOrderComparator<String> fixedOrderComparator = new FixedOrderComparator<String>(sorts);
        fixedOrderComparator.setUnknownObjectBehavior(FixedOrderComparator.UnknownObjectBehavior.BEFORE);
        Arrays.sort(strs, fixedOrderComparator);
        log.info("-{}", JSONObject.toJSONString(strs));
执行结果
2019-04-12 14:25:35 [main] INFO  FixedOrderComparatorTest:29 - -["其余","北部网信","南部","合计"]
2019-04-12 14:25:35 [main] INFO  FixedOrderComparatorTest:34 - -["北部网信","南部","其余","合计"]

实现java bean 中属性排序

String[] sorts = { "其余","合计" };

        List<Team> teams = new ArrayList<>();
        Team team = new Team();
        team.setName("北部网信");
        teams.add(team);
        Team team1 = new Team();
        team1.setName("其余");
        teams.add(team1);
        Team team2 = new Team();
        team2.setName("合计");
        teams.add(team2);
        Team team3 = new Team();
        team3.setName("南部");
        teams.add(team3);
        FixedOrderComparator<String> fixedOrderComparator = new FixedOrderComparator<String>(sorts);
        		fixedOrderComparator.setUnknownObjectBehavior(FixedOrderComparator.UnknownObjectBehavior.BEFORE);
        BeanComparator beanComparator = new BeanComparator("name",fixedOrderComparator);
        Collections.sort(teams, beanComparator);
        log.info("-{}", JSONObject.toJSONString(teams));
执行结果:
[{"name":"北部网信"},{"name":"南部"},{"name":"其余"},{"name":"合计"}]
相关文章
相关标签/搜索