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":"合计"}]

转载于:https://my.oschina.net/u/3247419/blog/3035969

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值