google guava 重复key的Map范例使用

博客应该是高质量的,我这么想。   博主最近做项目时,遇到了及其复杂的集合,对象转换工作,大量用到了Map,List等,尤其是Map,类似会出现Map,Map>这样的情况出现。而我毫无办法。因为往往是两个主键对应了一个信息组,不知道大家有没有遇到过,举个例子:一对夫妻生了很多孩子,那我要把这个数据表达出来,就出现了上面的情况。他们的孩子有多个,应该是一个List。我会这样表达,Map,List
摘要由CSDN通过智能技术生成

博客应该是高质量的,我这么想。

   博主最近做项目时,遇到了及其复杂的集合,对象转换工作,大量用到了Map,List等,尤其是Map,类似会出现Map<Map<String,String>,Map<String,String>>这样的情况出现。而我毫无办法。因为往往是两个主键对应了一个信息组,不知道大家有没有遇到过,举个例子:一对夫妻生了很多孩子,那我要把这个数据表达出来,就出现了上面的情况。他们的孩子有多个,应该是一个List。我会这样表达,Map<Map<妻子ID,丈夫ID>,List<孩子ID>>。如果你得到了一组信息,丈夫,妻子,孩子。于是乎你把他们放到了上面的数据结构中。不错。但是!如果你又得到了一组信息。丈夫,妻子,孩子。尴尬的时候出现了。丈夫和妻子是key。Map中不可重复,直接put会覆盖之前的孩子信息。

   写代码的时候,如果碰到这种情况,不是什么大不了的事,你总能通过一定的编码手段来组装进数据结构中。不过编码肯定复杂些,能不能简单点呢?这时候,我发现了guava中的MutiMap,发现非常好用。你不再需要考虑,直接put,不用考虑Map key不可重复,value会被替换这个蛋疼的问题。


例如:


          Multimap<Map<String,String>> map = Maps.newHashMap();

          Map<String,String> keyMap  = Maps.newHashMap();

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值