2,要保持顺序请用LinkedHashMap ,要排序请用TreeMap,这两个对象效率都比HashMap低,算法问题。3,use usertable是什么意思??4,用了一个非常量的字符串,好象意思是java规范建议不使用
   getSting("userName");这种方式,而是建议在某个地方建立常量字典。
    
   Public Class User{
      /** 用户名*/
      public static final String UESR_NAME="userName";
   }
   getSting(User.UESR_NAME);
   这样输入错误会减少,更容易修改,更好的阅读,特别使用好的IDE的情况下。   但我只用有一半的代码这样用:)好象有点麻烦。

解决方案 »

  1.   

    1。在Struts的Action中不能定义类变量,是因为容器中每个Action只有一个实现.Servlet有没有这样的问题,也不能定义类变量吗?
    不是不能,Servlet非线程安全,可能导致变量状态混乱
    2。HashMap和Hashtable存储数据为什么不能保证它们的顺序。
    value地址根据key计算,所以是无序的
      

  2.   

    2.HashMap和Hashtable是根据hashCode的不同进行存储的,没有顺序,如果想要有序的,可以用Treemap.3.use 是什么数据库的命令啊,foxbase有这个命令,打开数据库的意思.
      

  3.   

    1. 不知道,才刚开始学习Struts,其实我打算学习Struts2,也就是Webwork2.2..呵呵2。HashMap继承自AbstractMap, 后者实现了Map接口,而Map接口并不确保元素顺序。
    Hashtable继承自Dictionary,应该尽量避免使用,也不保证顺序。
    SortedMap接口提供你需要的功能,具体使用的就是TreeMap
      

  4.   

    1    怎么会能没有呢?你自己写一个类去继续超类就可以了嘛,action也是servlet,你可以自己写类实现
      

  5.   

    3。这是MySQL里的用法吗?这个就不要在代码里用了,不然怎么在数据库之间移植呀!4。没觉得有什么问题,请高手进来回答
      

  6.   

    HashMap基于散列的原理实现的,其目的就是内部进行的重新排列以提高查询速度,自然不会保存原有的顺序,Hashtable应该也是一样的
      

  7.   

    3。数据库执行use usertable(usertable是一个表名)时返回什么结果,为什么不能把这名话放在一个既有删除语句又有插入语句的Bath中一块执行。
    ==========================================================
    use 一张表?不记得有这种用法,USE 的语法只有 USE {DATABASE} 一种,而且执行的时候后面一定要加个 GO
      

  8.   

    1。不能在servlet中最好也不要定义
    2。不能保证顺序
    3。应该是use database吧
    4。写成常量就可以了。