本帖最后由 OnlyOneLove 于 2011-12-29 15:38:09 编辑

解决方案 »

  1.   

    HashMap 呗, 数据量不大,用哪个都一样
      

  2.   

    用HashMapHashtable:需要同步
    TreeMap:需要排序
    LinkedHashMap:双向指针,浪费
      

  3.   

    TreeMap查找效率比LinkedHashMap高,但遍历的话应该是LinkedHashMap效率更高一些。
      

  4.   

    需要线程安全啊,因为系统中有好几个类要操作这个map。有可能有好几个类同时需要操作这个map!
      

  5.   

    你列举的这些除了HastTable,其他都是非线程安全的。手动同步不行么?
      

  6.   

    怎么个手动同步法啊?
    有可能有好几个类的非static方法同时需要操作这个map!
      

  7.   

    线程安全使用 ConcurrentHashMap。
      

  8.   

    把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样import java.util.HashMap;public class SynchronizedMap
    { private HashMap<String, Integer> hp = null; public synchronized void put(String key, Integer value)
    {
    this.hp.put(key, value);
    }}另外,我觉得HashTable也是可以的!
      

  9.   

    谢谢,我觉得您的这个主意不错!
    操作方法synchronized 了,是不是HashMap和HashTable随意用了?
      

  10.   

    是不是操作方法加了synchronized ,就可以用HashMap了呢?
      

  11.   


    肿么可能……这些东西应该有人告诉你的[Quote]
    还要用同步的单例模式才行……你的方法synchronized 了,用hashmap就行了
      

  12.   


    一般来说性能从大到小,HashMap > TreeMap > LinkedHashMap >  Hashtable 
    原因很简单,Hashtable是同步的,其他不同步的。不过从你的需求来说,用TreeMap比较合适。
      

  13.   

    一般用hashmap,hibernate生成的映射文件里都是hashset,说明hash算法寻址比较快