java里面容器的几个问题。。

RouShan007 2012-06-05 01:00:27
1.遍历最快的容器应该是神马呢?
2.查找最快的容器是hashset吗?
3.hashset在判断是否包含某个元素的时候很快,那如果要查找并定位这个元素应该用什么容器比较合适呢?

写一个程序,之前用vector。。慢死我了。。。
现在改用了ArrayList貌似快了很多,但是还是觉得不够快呃。。。
...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
RouShan007 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
我就是这样想的阿。。。我是学JAVA一个月的快乐小菜鸟。见谅。。
[/Quote]

了解了~~~~我去试试~
现在又要去看数据集过大的问题了QAQ
头痛><
结帖啦~
无名之辈 2012-06-05
  • 打赏
  • 举报
回复
我就是这样想的阿。。。我是学JAVA一个月的快乐小菜鸟。见谅。。
sai123q 2012-06-05
  • 打赏
  • 举报
回复
之后的排序可以把hashmap转为ArrayList<Entry<String,Integer>> list
再用Collections.sort(list ,new Comparator<Entry<String,Integer>>(){......});进行排序
无名之辈 2012-06-05
  • 打赏
  • 举报
回复
转还成ArrayList<Entry<>> 用collections.sort 试试?
RouShan007 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
回复3楼:

是这样的,我要查找的是一个string-int对,其中string没有重复的,根据string的值来找出这个string-int对,,
本来是用的hashmap<String,int>,但是我在查找完之后还需要根据int的值对整个集合进行排序,,
然后就找不到好的方法了。。。><只好舍弃hashmap改用别的。。。请问介个还有什么效率比较高的方法么,,?

不知道我问题说……
[/Quote]

这个要是想根据value来进行排序就不行了吧?
无名之辈 2012-06-05
  • 打赏
  • 举报
回复
回复3楼:

是这样的,我要查找的是一个string-int对,其中string没有重复的,根据string的值来找出这个string-int对,,
本来是用的hashmap<String,int>,但是我在查找完之后还需要根据int的值对整个集合进行排序,,
然后就找不到好的方法了。。。><只好舍弃hashmap改用别的。。。请问介个还有什么效率比较高的方法么,,?

不知道我问题说清楚了没。。。求解~

Map<String, Integer> users = new HashMap<String, Integer>();
users.put("小白", 1);
users.put("小黑", 3);
users.put("小明", 2);
users.put("小红", 4);
Set<Entry<String, Integer>> entrySet = users.entrySet();
System.out.println("Entry Set"+entrySet);
//用value迭代
int sum = 0;
for(Iterator<Integer> i = users.values().iterator();i.hasNext();){
int n = i.next();
sum+=n;
}
System.out.println("value的总和是:"+sum);
这个你去体一下。看看行不性。。
RouShan007 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
1 jdk提供的集合类中遍历最快的应该就是ArrayList,vector是线程安全的,所以慢
2 yes(jdk提供的集合类中)
3 查找并定位,用hashmap可以,不过要增大内存开销(空间换时间),也就是put(key, value),key和value是相同的,这样 get(key)就可以得到value了
[/Quote]

是这样的,我要查找的是一个string-int对,其中string没有重复的,根据string的值来找出这个string-int对,,
本来是用的hashmap<String,int>,但是我在查找完之后还需要根据int的值对整个集合进行排序,,
然后就找不到好的方法了。。。><只好舍弃hashmap改用别的。。。请问介个还有什么效率比较高的方法么,,?

不知道我问题说清楚了没。。。求解~
ning5566 2012-06-05
  • 打赏
  • 举报
回复
阿宝永远是对的。。
qybao 2012-06-05
  • 打赏
  • 举报
回复
1 jdk提供的集合类中遍历最快的应该就是ArrayList,vector是线程安全的,所以慢
2 yes(jdk提供的集合类中)
3 查找并定位,用hashmap可以,不过要增大内存开销(空间换时间),也就是put(key, value),key和value是相同的,这样 get(key)就可以得到value了

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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