multimap数据结构

这篇博客介绍了如何在Java中使用Multimap(ArrayListMultimap)数据结构对业务开票数据进行分类和汇总。通过锁定机制避免并发问题,代码展示了根据特定条件将对象存储到Multimap中,以便于后续的分类操作。博客还提到了Multimap在查询时能返回多个值的特性,类似于数据库查询。
摘要由CSDN通过智能技术生成

Java使用multimap数据结构

真实业务开票业务

//根据consignorId、tax分类汇总

Multimap<String, TfFinanceSettleConsignorShip> byownerCompNo = ArrayListMultimap.create();
            for (TfFinanceSettleConsignorShip financeSettleConsignor:paramSelect)
            {
                String settleNo = financeSettleConsignor.getSettleNo();
                if (!LockManager.getKeyLock().lock(LockName.SETTLE_NO.create(settleNo))) {
                    throw new RuntimeException("结算单号"+settleNo+"正在被其他人操作,请稍候再试!");
                }
              
 byownerCompNo.put(ObjectUtils.toString(financeSettleConsignor.getConsignorId())+financeSettleConsignor.getTax()+" "+financeSettleConsignor.getInvoicingPlatformCode()+" "+financeSettleConsignor.getConsignorLedgerCode(), financeSettleConsignor);
            }

for (Entry<String, Collection<TfFinanceSettleConsignorShip>> p : byownerCompNo.asMap().entrySet()){

// 分类完毕之后 再依次分类汇总

}

我们希望得到键可以重复的map数据结构,这样在查询特定键时可以返回多个值,类似数据库的查询。

// Returns a List, not a Collection.

具体关于Map拿值不理解的可以看,转载  https://blog.csdn.net/mageshuai/article/details/3523116

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值