compartor的简单使用

用于排序

lamda使用

Collections.sort(currPairs, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return containsIndex(t0Currency,o1).compareTo(containsIndex(t0Currency,o2));
            }
        });

-----
currPairs.sort((String o1,String o2)->containsIndex(t0Currency,o1).compareTo(containsIndex(t0Currency,o2)));
或者
Collections.sort(lst, (s1, s2) -> {
                    return s2.getUpdateTime().compareTo(s1.getUpdateTime());
                });
private static final String Format = "%d %s";
    private final Comparator<FXAccount> FXAccountComparator = (a1, a2) -> {
        FXAccount defaultFxPbAccount = getDefaultFxPbAccount();
        //defaultFxPbAccount 放前面
        int val1 = a1.getAccount_id().equals(defaultFxPbAccount.getAccount_id()) ? 1 : 2;
        int val2 = a2.getAccount_id().equals(defaultFxPbAccount.getAccount_id()) ? 1 : 2;
        return String.format(Format, val1, a1.getAccount_id().toString()).compareTo(
                String.format(Format, val2, a2.getAccount_id().toString()));
    };

使用
Collections.sort(nop.getBrokerAccount(), FXAccountComparator);

pairs.sort(Comparator.comparing(o -> o.v));

Collections.sort(list, new Comparator<Total>() {
            @Override
            public int compare(Total t1, Total t2) {
                return t1.getCcy().compareTo(t2.getCcy());
            }
        });

更详细的使用

private static final String TradeFormat = "%d %d %s %d %s %d";
    /**
     * roll account tadeid
     */
    private static final Comparator<Trade> TradeComparator = (t1, t2) -> {

        //roll 放前面
        int rollVal1 = StringUtils.isNotBlank(t1.getRollTradeId()) ? 1 : 2;
        int rollVal2 = StringUtils.isNotBlank(t2.getRollTradeId()) ? 1 : 2;

        //account
        long accountId1 = t1.getAccount_id(),
                accountId2 = t2.getAccount_id();

        String prefix1 = getRemarkPrefix(t1);
        String prefix2 = getRemarkPrefix(t2);

        String tradeId1 = t1.getDeal_id();
        String tradeId2 = t2.getDeal_id();

        int isCash1 = TradeEntryConstant.TradeType.CashSettlement.getValue().equals(t1.getTradeType()) ? 1 : 0;
        int isCash2 = TradeEntryConstant.TradeType.CashSettlement.getValue().equals(t2.getTradeType()) ? 1 : 0;

        long valueDate1 = t1.getSettlement_date() != null ? t1.getSettlement_date().getTime() : 0;
        long valueDate2 = t2.getSettlement_date() != null ? t2.getSettlement_date().getTime() : 0;

        return String.format(TradeFormat, rollVal1, accountId1, prefix1, isCash1, tradeId1, valueDate1).compareTo(
                String.format(TradeFormat, rollVal2, accountId2, prefix2, isCash2, tradeId2, valueDate2));
    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值