A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© dfse999 初级黑马   /  2014-8-3 23:15  /  908 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家好!
我现在遇到这样的问题,请求大家来帮助,先谢谢各位大侠。

有这样的一个结果集,结果集的结构是Map的存储方式 如<"a","b">,<"b","b,c">等,数据量有50万

已知一个结果集,结果集的结构是这样的,如{a,b,c,d,e....}此结果集是唯一的且数据量较大(10万),无重复值,目前java代码中我用List<String>来存储的,是否采用其他方式存储更好?

我的实现是 先Map循环,得到key的值,然后去List<String>10万里去查找,查List中是否存在该key值,
如果存在,返回true后并打印<key,value>值,list<String>也采用的是for循环,这样查下去速度很慢,整个程序运行的时间长达8个小时

个人觉得这样实现不妥,目标就是一个结果集作为参数判断另一个结果集是否存在,存在就打印出<key,value>
看看大家是否有别的思路来实现呢?请指点......

1 个回复

倒序浏览
查找key是否存在:
1. 可以先排序后用二分查找。
2. List<String>结果集既然无重复值,也可以考虑HashSet。这就看你的哈希函数怎么设计,在时间和空间中权衡。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马