weixin_43630445
yosolo
2018-11-07 06:20
采纳率: 50%
浏览 817
已采纳

请帮忙设计一个高效的HashMap嵌套算法

原始map: 包含key不同,但是value相同的条目

 {6637396=A1_001,6601506=A1_001,6655322=A1_002}.....

要求重组新的map>, 新map的key是随机生成的UUID,value是原始map中value相同的条目组装成的新的map,结果输出如:

 {uuid1={6637396=A1_001,6601506=A1_001},uuid2={6655322=A1_002}}...

尽量避免多次循环遍历,要考虑大数据量的情况下效率问题。请使用JDK7, 谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_43632454
    qq_43632454 2018-11-07 09:21
    已采纳

    HashMap map =new HashMap();
    map.put("111", "aaa");
    map.put("222", "aaa");
    map.put("333", "aaa");
    map.put("444", "bbb");
    map.put("555", "bbb");
    //System.out.println(map);
    HashMap cachMap=new HashMap();
    HashMap> resultMap=new HashMap>();
    Set set= map.keySet();
    Set cachSet=cachMap.keySet();
    for (String string : set) {
    if (!cachSet.contains(map.get(string))||cachSet.size()==0) {
    String uuid=UUID.randomUUID().toString();
    cachMap.put(map.get(string), uuid);
    HashMap innerMap=new HashMap();
    innerMap.put(string, map.get(string));
    resultMap.put(uuid,innerMap );
    }else{
    resultMap.get(cachMap.get(map.get(string))).put(string, map.get(string));
    }

        }
        System.out.println(resultMap);
    
    点赞 评论

相关推荐