你好!要求用Map存一系列的bean,用哪个Map效率最高呢? 本帖最后由 OnlyOneLove 于 2011-12-29 15:38:09 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HashMap 呗, 数据量不大,用哪个都一样 用HashMapHashtable:需要同步TreeMap:需要排序LinkedHashMap:双向指针,浪费 TreeMap查找效率比LinkedHashMap高,但遍历的话应该是LinkedHashMap效率更高一些。 需要线程安全啊,因为系统中有好几个类要操作这个map。有可能有好几个类同时需要操作这个map! 你列举的这些除了HastTable,其他都是非线程安全的。手动同步不行么? 怎么个手动同步法啊?有可能有好几个类的非static方法同时需要操作这个map! 线程安全使用 ConcurrentHashMap。 把这个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也是可以的! 谢谢,我觉得您的这个主意不错!操作方法synchronized 了,是不是HashMap和HashTable随意用了? 是不是操作方法加了synchronized ,就可以用HashMap了呢? 肿么可能……这些东西应该有人告诉你的[Quote]还要用同步的单例模式才行……你的方法synchronized 了,用hashmap就行了 一般来说性能从大到小,HashMap > TreeMap > LinkedHashMap > Hashtable 原因很简单,Hashtable是同步的,其他不同步的。不过从你的需求来说,用TreeMap比较合适。 一般用hashmap,hibernate生成的映射文件里都是hashset,说明hash算法寻址比较快 我想实现逢10就转换线程,请高手帮我看看错误在哪里 求助分组取最大值算法 文本域调用getText时可以触发什么监听器吗 一个很小的问题 用java如何进行nt域认证? 请问谁有java读取串口数据的源码和方法 有没有人可以介绍一下,LinkedList的概念或思路??求救中.......... oracle 换成sqlserver的尴尬。。。。。 类型转换 是不是jdk1.3后就不包含com.sun.java.swing包了? 以下代码共创建了几个字符串对象 String a,b,c a ="java",b=a,c=a+b 大家晒下java开发代码的小技巧啊!
TreeMap:需要排序
LinkedHashMap:双向指针,浪费
有可能有好几个类的非static方法同时需要操作这个map!
{ private HashMap<String, Integer> hp = null; public synchronized void put(String key, Integer value)
{
this.hp.put(key, value);
}}另外,我觉得HashTable也是可以的!
操作方法synchronized 了,是不是HashMap和HashTable随意用了?
肿么可能……这些东西应该有人告诉你的[Quote]
还要用同步的单例模式才行……你的方法synchronized 了,用hashmap就行了
一般来说性能从大到小,HashMap > TreeMap > LinkedHashMap > Hashtable
原因很简单,Hashtable是同步的,其他不同步的。不过从你的需求来说,用TreeMap比较合适。