通过大类跌代出小类,我把他们放在hashtable中 hashtable(key,value)对应的hashtable(大类,小类),但是在页面显示的时候,顺序和放进去的不一样,请问如何排序,或者有相同功能的数据结构,最好给出例子,万分感谢

解决方案 »

  1.   

    顺序一样就不叫hash了要“顺序和放进去的一样”,用2个ArrayList,一个存放key,一个存放value
      

  2.   

    hashtable是按key进行查找的(存放位置和初始大小、填充因子有关),不果不是按key进行查找,你用hashtable干什么啊?直接用ArrayList好了!
      

  3.   

    同意kingfish,如果要求的顺序是放入的顺序,则用ArrayList数组就行了,不须排序,按顺序取就是了.
      ArrayList[] result = new ArrayList[]{new ArrayList(),new ArrayyList()};
       result[0].add(key1); result[1].add(value1);
       .....如果要排序,你要排key还是value,按什么排,都有讲究.一般是写一Comparator.
    Object[] x = result[1].toArray(); // 排Value
    Arrays.sort(x,new Comparator() { public int compare(Object o1, Object o2) {
    return ((Value)o1).field >= ((Value)o2).field;
    }});
      

  4.   

    我需要的是大类跌代出小类,具体如下:
      类1   a
      类1   b
      类2   a
      类2   b
    那么这样我在页面显示就可以直接显示出来,
    楼上所说的能达到这个效果吗?
      

  5.   

    这样的话,两维是不容易做的.建议用一列放类名的和,如"类1a","类1b",...",然后用它做排序.
    hashtable.put(key.name+value.name,new Object[]{key,value});
    Object[] keys = hashtable.keySet().toArray();
    Arrays.sort( keys,
    public int compare(Object o1, Object o2) {
       return ((String)o1).compareTo((String)o2);
    }});
      

  6.   

    linkedhashmap可以实现放入顺序和取出顺序一样吗?我试过了,怎么还是不一样,但是介绍说是可以的,不知道什么原因?