日期:2014-05-20  浏览次数:20612 次

java里面容器的几个问题。。
1.遍历最快的容器应该是神马呢?
2.查找最快的容器是hashset吗?
3.hashset在判断是否包含某个元素的时候很快,那如果要查找并定位这个元素应该用什么容器比较合适呢?

写一个程序,之前用vector。。慢死我了。。。
现在改用了ArrayList貌似快了很多,但是还是觉得不够快呃。。。

------解决方案--------------------
1 jdk提供的集合类中遍历最快的应该就是ArrayList,vector是线程安全的,所以慢
2 yes(jdk提供的集合类中)
3 查找并定位,用hashmap可以,不过要增大内存开销(空间换时间),也就是put(key, value),key和value是相同的,这样 get(key)就可以得到value了


------解决方案--------------------
回复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);
这个你去体一下。看看行不性。。