有100个数据(例如从1到100这100个数),一个用vector存放,一个用<1,null> <2,null>这样的方法存放到HashMap中。
下面这两个判断语句,谁的执行快?为什么?
vector.contains(n)
hashmap.containskey(n)
或者,有没有更快的查询一个数是否在一群数当中的方法?
下面这两个判断语句,谁的执行快?为什么?
vector.contains(n)
hashmap.containskey(n)
或者,有没有更快的查询一个数是否在一群数当中的方法?
Vector是线程安全的,同步方法会造成性能损失,而且vector.contains(n) 是用循环的方法来定位元素.
hashMap不是同步的.而且用hashcode来定位元素,理论上的复杂度比较低,
数据结构都不一样,一个是键值对,一个是就是个数组列表,你应该用 HashSet 和 ArrayList
或 Vector 来比较。根据实际项目中的测试。测试数据是两个 20 余万条数据的文件,找出新增、删除的条目。采用 ArrayList 时执行的速度是 12 分钟左右
采用 HashSet 时执行的速度是 3 秒左右
Secondly, you can write a paragragh codes to verify the effect.
如果是100万个 显然 hashmap 更快