1.遍历最快的容器应该是神马呢?
2.查找最快的容器是hashset吗?
3.hashset在判断是否包含某个元素的时候很快,那如果要查找并定位这个元素应该用什么容器比较合适呢?写一个程序,之前用vector。。慢死我了
现在改用了ArrayList貌似快了很多,但是还是觉得不够快呃

解决方案 »

  1.   

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

  2.   


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

  3.   

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

  4.   


    这个要是想根据value来进行排序就不行了吧?
      

  5.   

    转还成ArrayList<Entry<>> 用collections.sort 试试?
      

  6.   

    之后的排序可以把hashmap转为ArrayList<Entry<String,Integer>>     list
    再用Collections.sort(list ,new Comparator<Entry<String,Integer>>(){......});进行排序
      

  7.   

    我就是这样想的阿我是学JAVA一个月的快乐小菜鸟。见谅。。
      

  8.   


    了解了~~~~我去试试~
    现在又要去看数据集过大的问题了QAQ
    头痛><
    结帖啦~