不懂你说什么。不过
Hashtable tmp = new Hashtable();
tmp = B();
这肯定是错误的,没必要为tmp分配内存。

解决方案 »

  1.   

    你可以直接用名字取值啊,比如:
    String strADRS =(String)tmp.get("capacity");
    不用索引值,不就可以了吗
      

  2.   

    按顺序取出你可以用TreeMap,Hashtable本来就是散列的
      

  3.   

    楼上 crm2000(浏览器) 说的不对,为什么没有必要给tmp分配空间啊,没有道理啊。一定要这样的,必须要初始化对象的。
      

  4.   

    对了,前面的你在给哈系表付值时,如下
    rwe.put("capatity","asdfasdf");
    rwe为一个哈系表
      

  5.   

    tmp的capacity是5让人费解,我觉得一个新的Hashtable不可能限定容量,你可以把B的内容一个一个取出放进A中试试.
      

  6.   

    请给出:Hashtable tmp = new Hashtable();这样做不对的理由?
    是你们的变成风格有问题,这样做是良好的变成风格。没有什么不对。
      

  7.   

    我把具体情况在从新说明一次:(我觉得一次讨论能学到的真的不只是一个问题)
    我在某个方法A中调用另外一个方法
    A{
    Hashtable tmp = new Hashtable();//debug出tmp的capacity是11,这是构造的缺省值
    tmp = B();//debug出tmp的capacity是5
    }
    B{
    Hashtable hash = new Hashtable();//debug出tmp的capacity是11
    /**some hash.put**/
    //debug出tmp的capacity是11
    return hash;
    }
    发现在B中,要返回的Hashtable的capacity是11,
    而tmp的capacity是5
    我想要在A中按B中的PUT顺序取出Hashtable的内容,可是象上面一来,tmp里的顺序就乱了,请问这是什么原因有没有其他解决办法1
    楼上的建议的TreeMap我可以去试试,不过Hashtable问题还请指教
      

  8.   

    用TreeMap好象顺序也不对了,不知TreeMap用的什么遍历方法?
    应该怎样操作才能保持顺序不变