首先是我将对象依次放入了collection中 由于放入时顺序正确,但是在我用迭代器取出时,顺序就反了 使得我后面的程序数据都是反的,十分苦恼,请问高手有什么方法吗?

解决方案 »

  1.   

    对象实现comparable接口自己写里面的比较方法
      

  2.   


      Map cartmap=cartmap=new HashMap();
      cartmap.put(id[i], cratbean);
      Collection collection=cartmap.values();
      ... ...
      for(Iterator iter = collection.iterator(); iter.hasNext();) {
        CartBean cartbean = (CartBean)iter.next();
        WaresBean wares = cartbean.getWares();
        int pnum = cartbean.getPnum();
      }
    代码太多了 少数部分
    cartmap 是Map集合,它的值就是几个封装对象cratbean
    我就是想在下面的循环时能按照放进去时的顺序拿出来,可是现在这样就是从后放进来的先出来
      

  3.   

    for(int i=0; i<collection.size();i++)
      

  4.   

    用LinkedHashMap来试试,HashMap是不保证顺序的。
      

  5.   

    用TreeMap(Comparator<? super K> c) 
              构造一个新的空映射,该映射根据给定的比较器进行排序。
      

  6.   

    map是键-值对放入的,一个对象对应一个id数 只不过在cartmap.values()时 不知道是不是按顺序放入collection?
      

  7.   


    LinkedHashMap<String,String> map = new LinkedHashMap<String,String>();
    map.put("1", "1");
    map.put("2", "2");
    map.put("3", "3");
    map.put("4", "4");
    Set<String> keySet = map.keySet();
    for(String key : keySet){
    System.out.println(key+"="+map.get(key));
    }
      

  8.   

    HashMap实现的机制和set一样,都是存放的散列集。
    如果按顺序存放,用LinkedHashMap就行了!
      

  9.   

    明白了 用LinkedHashMap就可以 多谢各位高手了 我连这个都不知道 唉~~咋办
      

  10.   

    谁知道如果我LinkedHashMap中的键值对 键本来是个有顺序的数组,比如1,2,3,4   如果键在一个操作后,被删除其中某个部分,变成1,2,4,6,7 不是有顺序的了 那么我怎么一次得到这些key值?