我现在用HashTable是使用它来做缓冲用的,基本只是put(key,value)和get(key),其他的基本没有用到。
请问用用bean的思想来做是不是更好一点,要是赞成的话,说说你的想法,不赞成也说说为什么?

解决方案 »

  1.   

    key-value的键值对当然要用Map了,难道一定要用你自己写的bean实现Map的功能才好?
      

  2.   

    换句话说,楼主用List的时候也就是add get之类的方法。为什么没想到用bean呢
    具体问题具体分析。看你怎么用了。
      

  3.   

    其实java相比C、C++之所以简单就是因为它提供了丰富的类库,既然有现成可以用的,没有必要再去写bean类,一是省时省力,二是代码维护起来简单,没必要维护额外的类...
      

  4.   

    现在我的代码是在手机上运行,对内存处理非常difficulty,所以要很好的利用内存。
    一个HashTable我感觉太大了,每次两个对象,分配占位第一次11,只占了8个左右又接着分配11个,一下多出来近10多个空位,所以才想到了这招,正在thinking!
      

  5.   

    不用hashtable不可以吗?我做手机游戏的时候从来不用那东西,除非给特定的手机用,内存大的机器还可以考虑用那东西的,否则不用.
      

  6.   

    我现在就是打算把以前的HashTable换掉,感觉现在不好弄,是了好几次还是有问题。
      

  7.   

    bianmazi,你是怎么写的,能说说吗?我写的怎么老不对,我觉得重写的hashCode()和equals()没有问题。
      

  8.   

    这就是CPU和内存选择哪一个的问题了....
    如果缓存中东西很多,用Map结构来做的话就会牺牲了内存.
    如果缓存东西不多,用数组的方法来迭代取出,这样会牺牲CPU性能.自己做的数据结构可以让内存的消耗减少一些,至少不用创建JAVA集合对象.
      

  9.   

    楼主应该再次看看Hashtable的API, 对于空间占用问题,Hashtable自己已经提供了方法
    public Hashtable(int initialCapacity,
                     float loadFactor)
    用指定初始容量和指定加载因子构造一个新的空哈希表。 参数:
    initialCapacity - 哈希表的初始容量。
    loadFactor - 哈希表的加载因子。 如果不指定,默认是11 和 0.75
    你可以根据自己的使用情况,自己调整。 不过太小的话,每次都会分配内存,占用了CPU,你还是要在CPU和内存之间做一个平衡!
      

  10.   

    http://code.java2000.net/doc/jdk6/html/zh_CN/api/java/util/Hashtable.html通常,默认加载因子(.75)在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查找某个条目的时间(在大多数 Hashtable 操作中,包括 get 和 put 操作,都反映了这一点)。初始容量主要控制空间消耗与执行 rehash 操作所需要的时间损耗之间的平衡。如果初始容量大于 Hashtable 所包含的最大条目数除以加载因子,则永远 不会发生 rehash 操作。但是,将初始容量设置太高可能会浪费空间。
      

  11.   

    看后hashtable的api你就知道该怎么做了啊
    其实你也可以看看他源代码的实现方式了
    你可以选择一种合适方案进行开发的啊
      

  12.   

    隨便寫寫就用hashmap
    要是做項目的話還是用bean吧。。
      

  13.   

    视这些key-value对的特点来定吧,如果之间联系很大,就用bean吧,否则,HashMap搞定
      

  14.   

    JAVA技术交流与学习:45633778技术交流,共同进步!!