请帮忙设计一个高效的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
杜少陵 谢谢
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
HashMap嵌套HashMap嵌套HashMap(三层嵌套)
HashMap嵌套HashMap嵌套HashMap(三层嵌套)
集合嵌套之HashMap嵌套HashMap
/* 集合嵌套之HashMap嵌套HashMap          *          * 需求:          * 课堂有很多班          * 第88班定义成一个双列集合,键是学生对象 ,值是学生归属地          * 第99班定义成一个双列集合,键是学生对象 ,值是学生归属地          * 无论88期还是99期都是班级对象 ,所以为了便于同一管理,把这
HashMap嵌套HashMap之遍历
/** * 需求:黑马48期学生基础班定义成一个双列集合,键是学生对象,值是归属地 * 黑马49期学生基础班定义成一个双列集合,键是学生对象,值是归属地 * * 无论是哪一期都是班级对象,为了便于统一管理,将这些班级对象添加到统一的集合中去 */ public class Demo_HashMapHashMap { public static void mai...
Java_基础—集合嵌套之HashMap嵌套HashMap
* 集合嵌套之HashMap嵌套HashMap
java:集合框架(集合嵌套之HashMap嵌套HashMap)
import java.util.HashMap; import com.heima.bean.Student; public class Demo8_HashMap { public static void main(String[] args) { HashMap<Student, String> hs88=new HashMap<>(); hs88....
请帮忙设计一个算法,谢谢!!!!!!!!!
有一个表:rn w x1 x2 x3 ...rn 100 29.4 0.7 100.6rn 100 34.6 0.9 101.5rn ... ... ... ...rn其中 w是重量,x1,x2,x3是各种含量,各种含量由重量(w)计算rn列相加要符合x1=1000,x2=56.9,x3=2000,rn怎样计算重量(w)?rn请大牛们帮忙设计个算法,不胜感激!
集合框架-集合的嵌套遍历(HashMap嵌套HashMap)
B:集合的嵌套遍历 a:HashMap嵌套HashMap package cn.itcast_05; import java.util.HashMap; import java.util.Set; /* * HashMap嵌套HashMap * * 传智播客 * jc 基础班 * 陈玉楼 20 * 高跃 22 * jy 就业班 *
请教个高效的算法
网络底层发送很多五元组M1、A、B、C、D数据,先存放起来,同时也发送五元组数据M2、X、B、C、D。如果是M2,则根据对应的BCD的信息在M1组内根据BCD的信息查找对应的A的值?rn数据量很大,先要将这些五元组存储起来,请问用什么比较高效?rn用map?multimap?
如何设计一个高效的数据存储算法(IOCP)
最近在研究IOCP,也学得了很多其他东西.rn于是自己尝试实现一个IOCP服务器(以前都是COPY)rn客户数据的存储我打算用链表,可发现存储的速度不是很理想rn都是用的遍历,没有一个比较合适的方法(最少查找次数1,最多查找次数为链表节点数)rn想过用HASH,又有点小题大做rnrn希望大家能提示一点思路,在查找速率上能提升一些rnrn目标:减少时间复杂度,空间复杂度不必考虑rn注:非MFC,纯C++
集合嵌套之HashMap嵌套HashSet
JavaSE是Java Standard Edtion的缩写,译成中文就是Java标准版,也是Java的核心。无论是JavaEE(Java企业版)还是JavaME(Java微型版)都是以JavaSE为基础。相当于它就是Java的语法规则。本次课程主要采用基础出发,实战结合的教学方式,对Java SE的多态、封装、继承、类、IO流、多线程等主要语法进行了详细解析,并联系了网络编程特性,内容简单易懂,小白入门进阶的必备课程。
一个关于HashMap的算法
有一个HashMap,里面存的是多个(record_id,object),rnrecord_id是一个记录号,object是该条记录的一个实体对象,rnobject里面有一个年份year, 可以用object.getYear()得到,rn和一个学期term,可以用object.getTerm()得到.rn现在想根据year,term分类,返回多个不同类别的HashMap.rn如:rn2005学年第1学期,rn2005学年第2学期rn要在不同的HashMap里面。rnrn
求帮忙设计一个算法
问题是这样的:rn当n=3时,表示有3个元素,其中第1,2个元素为基本元素,可标记为a,b,那么第3个元素为abrn当n=7时,表示有7个元素,其中第1,2,4个元素为基本元素,标记为a,b,c,那么,第3个元素为ab,第5~7个元素依次为ac,bc,abc;rn当n=15时,基本元素为第1,2,4,8个元素,标记为a,b,c,d,第3个元素为ab,第5~7个元素为ac,bc,abc,第8个元素为d,第9~15个元素依次为:ad,bd,abd,cd,acd,bcd,abcd.rnrn能不能设计一个程序,当n不同时,把相应的元素列表生成出来。
如何自己设计一个高效类似于HashMap的容器
每一个找工作的人,对于Java collections的问题都会很熟悉,JDK 的java.util这个工具类中有各种容器的设计与实现。Hashmap是对map接口的一种实现,是一种使用很频繁的容器。 1.HashMap与Hashtable   相比较于Hashtable,HashMap非线程安全,每一个定义的方法都没有进行锁定,所以多线程情况下会高效但是会出现数据不同步问题,而hashtab
设计一个高效的函数!!!!!!!
CString InttoStr(const int& i)rn这是我自已为了方便写的一个函数:rn但下面情况:rn// lv这MFC一个控件。rn// lv.pszText 为char *rn lv.pszText=(LPSTR)(LPCSTR)InttoStr(1); //就会出现乱码.rn 原因是InttoStr() 返回一个凌时对象.rn 当然也有人说,rn CString& InttoStr(const int& i)rn  对于这种问题,我想我不用说了。rn 又得多定义一个CString 对象,太难看了吧。rn 又有人说,不就一个吗?rn 如:rn  Write_DB(const string& ip,const int pos,const string& type,const string& info)rn  这些const 这都要传给lv,我不是要定义一大堆,再说,rn  定义string 对象时,也要一定的资源.rnrnrn不知,高手们是如何设计的?
求一个高效的算法
我有个任务是处理一些数据,我自己弄了个算法,但总觉得不高效,希望哪位朋友帮忙看看然后提供一个思路。rn先说一下我的做法吧,数据来源是一些线程,这些线程都会产生一条条的数据,我将这些生产出来的数据都存放到一个数据列表中,然后在另一个专门的线程中处理。rn为了同步,生产数据的线程在调用“数据插入函数”时都进入了临界区,而处理数据的线程在取数据时也会进入临界区,这样一来,我就发现,处理线程并不高效,因为动不动就在临界区等待了。下面给出伪码,请大家看看。rnrn// 数据生产线程rnUINT DataProduceThread(..)rnrnwhile(1)rnrnMakeData();rnInsertData();rnrnrnrn// 数据处理线程rnUINT DataTransfer(...)rnrnwhile(1)rnrnEnterCriticalSection();rnGetData();rnDeleteData();rnLeaveCriticalSection();rndo somthing...rnrnrnrn// 数据插入函数rnvoid InserData()rnrnEnterCriticalSection();rn//将数据插入唯一的数据列表rnLeaveCriticalSection();rnrn数据是一条条的,在处理时也是一条条取出来处理,并且处理一条删除一条。
求一个高效的算法!!
现在有一个byte[]数组长度已经90594rnrn代码如下:rnrn[code="java"]rnpublic static String Bytes2HexString(byte[] b) rn String ret = "";rn System.out.println(currentTime());rn String hex = "";rn for (int i = 0; i < b.length; i++) rn hex = Integer.toHexString(b[i] & 0xFF);rn if (hex.length() == 1) rn hex = '0' + hex;rn rn //ret.append(hex.toUpperCase());rn ret += hex.toUpperCase();rn rn System.out.println(currentTime());rn return ret;rn rn[/code]rn执行后:rn2009-08-20 16:09:30rn2009-08-20 16:10:13rn竟然用了这么长时间。。rnrn 现在只能想到用把byte[]分成N个小的byte[]用多线程去转,不知道还没有更优的算法。。rnrnn[b]问题补充:[/b]n这个问题已经解决,rnrnrn还是小弟对java不怎么熟悉啊。rn[code="java"]rnpublic static String Bytes2HexString(byte[] b) rn StringBuffer ret = ""; rn System.out.println(currentTime()); rn String hex = ""; rn for (int i = 0; i < b.length; i++) rn hex = Integer.toHexString(b[i] & 0xFF); rn if (hex.length() == 1) rn hex = '0' + hex; rn rn ret.append(hex.toUpperCase()); rn //ret += hex.toUpperCase(); rn rn System.out.println(currentTime()); rn return ret.toString(); rn rnrn[/code]rnrn答案还是PHPRPC群里朋友给出的,,感谢rnrn
hashmap的嵌套遍历
hashmap的嵌套,存储一个自定义类 /* * hashmap的嵌套,存储一个自定义类 * *分析: * 1.创建一个hashmap,且它的键和值的其中一个也是hashmap * 2.创建两个hashmap,它的键 是自定义类Student * 3.创建Student对象,并分别向第二步的两个hashmap添加 * 4.分两种方法遍历输出 */ 自定义类: 1 2 ...
HashMap双层嵌套
HashMap双层嵌套需求:对于HashMap实现双层嵌套;先存入元素,再遍历元素。/* * HashMap嵌套HashMap * * 传播 * jc 基础班 * 陈1 20 * 陈2 22 * jy 就业班 * 陈3 21 * 陈4 23 * * 先存储元素,然后遍历元素 */ package cn.itcast_02;...
hashmap嵌套取值问题
小弟头一回用到hashmap,思路比较乱。rn我现在有个嵌套的hashmap.rnrn里面的hashmap是:rnMap map1 = new HashMap();rnmap1.put("hey1","val1");rnmap1.put("hey2","val2");rnmap1.put("hey3","val3");rnmap1.put("hey4","val4");rn外面的hashmap:rnMap map0 = new HashMap();rnmap0.put("0",map1);rnmap0.put("1",map1);rnrn现在我想取key2和key4的值,该怎么写。
java中hashmap的嵌套
import java.util.HashMap; import java.util.Map.Entry; import java.util.Set; public class hashmap_pra {     public static void main(String[] args) {     HashMap&amp;lt;Student,String&amp;gt; map1 = new Hash...
一个算法问题,请帮忙!!
如何将一个输入的数字逆序输出rn且输入的数字位数不确定rn比如:rn输入12345.78, 输出78.54321rn这题的解法很多rn但什么样的算法效率最高呢?rn请把详细算法写出来rn请帮帮忙!!谢谢啊!!
一个简单的算法,请帮忙
ID 货号 库存 已卖rn1 G001 25 rn2 G001 30 rn3 G001 25 rn4 G001 12 rn5 G001 18 rnrn以上为表四个字段,需要按照ID号先后顺序标记已卖数量,例如。当货品第一次卖了20件,那么ID=1这条记录【已卖】字段rn值为20,第二次卖了15件,那么ID=1的【已卖】值标记为25,ID等于2的【已卖】字段标记为20,按照这个规律,一直卖完为止rn通过多个条件判断,这个功能我都可以实现,但是我觉得这个方法不太好,求比较简洁的算法,谢谢帮忙
HashMap集合嵌套ArrayList集合、ArrayList集合嵌套HashMap集合
HashMap集合嵌套ArrayList集合 import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /** * @program: javalearnCode * @description: HashMap集合嵌套ArrayList集合。 ...
cpp-sparsemap一个高效hashmap和hashset的C实现
sparse-map一个高效hash map和hash set的C 实现
集合框架_HashMap集合嵌套HashMap集合的案例
package cn.itcast_05; import java.util.HashMap; import java.util.Set; /* * HashMap嵌套HashMap * * 培训学院 * jc 基础班 * 陈国栋 20 * 高明 22 * jy 就业班 * 李连杰 21 * 曹查理 23 * 先存储元素,然后遍历
hashmap嵌套hashmap循环生成二维数组
hashmap嵌套hashmap如何把数据合成一个二维数组 思路是定义一个二维数组的行和列(行和列的大小是根据两个两个数组来的,两个数组分别是第一行和第一列),通过循环这两个二维数组,取二维数组的值去判断hashmap里是否有这个类型的值,然后对应二维数组的行和列进行一一插入。然后 map的值{{ 10={其它=10224.1:1938, 农业生产用电=7615.75:7229, 合计=22842...
请大家帮忙设计一下算法
想做一个由电脑来猜数字的程序,但实在是想不出算法。rn请大家帮忙解决一下吧。谢谢了。rn猜数字这个游戏大家都应该玩儿过吧:)
高分求得设计算法!请大家帮忙!
设计算法:已知一棵以二叉链表存储的二叉树,root指向根结点, p指向二叉树中任一结点,编写算法求从根结点到p所指结点之间的路径。
请高手帮忙设计“双向冒泡排序”算法
有人问我一题,写出来的程序总是有问题。现在请求高手指教。rn使用C语言实现双向冒泡排序,即每一趟通过每两个相邻的关键字进行比较,产生最小和最大的元素。设元素类型为struct rec , 函数头为:void dbubble(struct rec *p,int n),p指向要排序的结构数组,n表示元素个数。
集合的嵌套练习之HashMap嵌套ArrayList
集合的嵌套练习之HashMap嵌套ArrayList 需求:HashMap集合嵌套ArrayList集合并遍历。 定义一个HashMap集合,它包含三个元素,每一个元素的 键是String类型 值是ArrayList类型。 &nbsp;&nbsp;&nbsp;&nbsp; 键:String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...
一个算法揭示HashMap的原理
大概是因为世界杯让我有借口去偷懒的原因吧,最近一段时间在公司也在做java的事情,所以没有太多的心思去写文章。万恶始于世界杯,也终于世界杯,以后就没有偷懒的借口了,心碎。。。 好吧,我来说说今天要讲的内容,源于一个大学的大神,突然来问我一个很简单的算法,然后就引起了自己的一些思考,下面我们来看看这个算法: 很简单,我们创建了两个Set,都知道Set是保存不重复的属性,然后第一个创建了100000...
集合嵌套(一)____ArrayList嵌套HashMap
package Day24; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; public class List_Map { public static void main(String[] args) { ArrayLi...
集合的嵌套练习之ArrayList嵌套HashMap
集合的嵌套练习之ArrayList嵌套HashMap 需求:ArrayList集合嵌套HashMap集合并遍历。 定义一个ArrayList集合,它包含三个元素,每一个元素都是HashMap类型的。 每一个HashMap集合的键和值都是String类型的, &nbsp;&nbsp;&nbsp;&nbsp;键:String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n...
帮忙看一个Hashmap的问题:
怎么把根据key得到的value转化为int啊
请高手帮忙设计一个算法,100分奉送!
问题如下:rn 某职工一天的工作时间分好几段(一般为2-6段),如8:00-9:00,10:00-11:00,14:00-15:30。。。,现已知该职工的工作时间段为N段,且已经把各个工作时间段的起止时间写在数据库里。另外该职工一天中的上下班时间也记录在了数据库里 如7:50-8:30,14:10-15:20。。。现在要求根据这个职工的上下班时间,统计出该职工的迟到、早退、缺勤次数,请各位帮忙想想有什么比较好的算法,请说明你的编程思路,谢谢!rn
帮忙设计个算法~~~
昨天同学问个问题:1至25,这25个自然数放在5*5的正方形中,要使的其对角,横行和树行的各数的和都相等,真的是高智商呀。我们能否设计一个算法,输入一个N,N就为上题中的“5”,也就是让数N的平方放在一个N*N的正方形中,让其对角线,横行,竖行上的数的和都相等。大家可否帮忙呀?
关于 hashmap 高效查找的实现
C++新手,现学现用,各位解答的时候希望能详细点,谢谢rnrn问题是这样的,现在有一批数据以结构体的方式存到了dat文件中rnrn然后,我要根据类似SQL语句的方式查找出想要的数据rnrn现在的做法是,如果发现 你的语句的查找条件部分是 A = 300rn那么先读取 A的索引文件(里面存着 每一条记录在文件中的位置[value]和A的值[key])rn生成一个hashmap,然后找到A = 300的记录的位置放到一个vector里rn然后根据这个vector去读文件显示出来,如果有好几个条件则最后根据and or的关系分别对这些vector求交集或者并集最后生成一个最终的vector再读文件显示出来rnrn[color=#FF0000]这样效率貌似很低,我猜主要是生成hashmap的部分影响了效率,1W条数据的时候查找需要2-5秒rn不知道各位有什么解决办法[/color]rnrn然后呢如果用这种办法的话条件写成A < 300那么就完蛋了,只能遍历,然后挨个判断A是不是小于300,(我没有找到hashmap有处理这种条件的方法,可能真的是我没找到,如果有各位请告诉我),[color=#FF0000]这个效率简直让人无法忍受了,几分钟都完不了...求解决办法[/color]
急求一个高效的算法
现在有一个字符串rnString aa="r,t,r,t,r,t,r,t,r,t,r,t,r,t,r,t,r,t,r,t,r,t,r"rn我需要把它每五个放到一个长度为5的数组里面rn我需要高效的方法rnsplit可以实现,但效率太低,高手提供一个高效的方法,谢谢rn最好是jdk里的方法
100求一个高效的算法。。。。
现在有一个这样的xml文件rn<1>rn <4>rn <2>内容1rn rn <3>rn <2>内容2rn rn<1>rnrn很显眼两个<2>元素表示的是不同的内容。rnrn现在我要分析xml文件把<2>的内容放到数据库中,这个时候肯定要区分开来的,因为以后还要还原的rn请问,怎么做可以达到这个要求。。。。rnrn声明:肯定不能把整个xml文件放到数据库中。rnrnrn
求大神帮忙设计一个排列组合的算法
问题抽象化之后就是比如有100张一元的钞票,现在要将它们分组,组数不确定,每组金额不确定,但是最大就是一个组(100元),最小就是100组(每组1元),要算出所有的可能分组情况,不考虑顺序,求指点啊
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池