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