请帮忙设计一个高效的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个回答

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);
weixin_43630445
杜少陵 谢谢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐