在查找元素的时候 map,list ,set 相比那个速度快

道生壹 2014-02-19 09:12:41
如题,在查找元素的时候,那个最快?
比如查两个数组中相同元素,两个数组的数据量都非常大,应该采用哪一个进行查找?

我在网上看到的最优算法是:
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1,2,5,7,8,3,12);
List<Integer> list2 = Arrays.asList(1,2,6,7,9,3,12);
List<Integer> list = new ArrayList<Integer>();
list.addAll(list1);
list.retainAll(list2);
System.out.println(list);
}

但是还有人说map快
到底哪一个快请具体说明一下
...全文
3413 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevencolours24 2014-10-29
  • 打赏
  • 举报
回复
引用 4 楼 huxiweng 的回复:
当然数组。。去搜搜关于这几个的适合查找/增删/的原理看看
人家没问数组
大瞎 2014-02-19
  • 打赏
  • 举报
回复
先明确自己的要求,再往下看,如果仅仅是查询速度,个人觉得MAP快,主要是其通过计算hash值获取存储地址。 collection 系列和 map系列(包括Hashtable)是2种不同的集合。放在一起比较不合适。 说多都白搭,先明确自己的设计中哪种集合更合适?
大大点点 2014-02-19
  • 打赏
  • 举报
回复
问题是楼主是要用这些做些什么实现什么功能啊,去了解下他们的数据结构,像list中也分ArrayList和LinkList 像ArrayList相对于LinkList查询要快很多.增删要慢点!
Test_LD 2014-02-19
  • 打赏
  • 举报
回复
这个查找快慢根查找的算法有关
teemai 2014-02-19
  • 打赏
  • 举报
回复
当然数组。。去搜搜关于这几个的适合查找/增删/的原理看看
道生壹 2014-02-19
  • 打赏
  • 举报
回复
How do?
长笛党希望 2014-02-19
  • 打赏
  • 举报
回复
毋庸置疑,array查找的速度是最快的。。。
tony4geek 2014-02-19
  • 打赏
  • 举报
回复
这个自己做实验看看
放纵的青春 2014-02-19
  • 打赏
  • 举报
回复
单纯的说哪个快有意义么 map list 都有不同的子类 set我用的少就不说 但是list跟map的使用场景一般是不重复的吧
angus584 2014-02-19
  • 打赏
  • 举报
回复
异步快
  • 打赏
  • 举报
回复
大学数据结构有这个比较吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧