黑马程序员技术交流社区

标题: 一个算法的问题 [打印本页]

作者: dfse999    时间: 2014-8-3 23:15
标题: 一个算法的问题
大家好!
我现在遇到这样的问题,请求大家来帮助,先谢谢各位大侠。

有这样的一个结果集,结果集的结构是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>
看看大家是否有别的思路来实现呢?请指点......
作者: fantacyleo    时间: 2014-8-3 23:31
查找key是否存在:
1. 可以先排序后用二分查找。
2. List<String>结果集既然无重复值,也可以考虑HashSet。这就看你的哈希函数怎么设计,在时间和空间中权衡。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2