你好!要求用Map存一系列的bean,用哪个Map效率最高呢?
--------------------编程问答-------------------- HashMap 呗, 数据量不大,用哪个都一样 --------------------编程问答-------------------- 用HashMapHashtable:需要同步
TreeMap:需要排序
LinkedHashMap:双向指针,浪费 --------------------编程问答-------------------- TreeMap查找效率比LinkedHashMap高,但遍历的话应该是LinkedHashMap效率更高一些。 --------------------编程问答-------------------- 需要线程安全啊,因为系统中有好几个类要操作这个map。有可能有好几个类同时需要操作这个map! --------------------编程问答-------------------- 你列举的这些除了HastTable,其他都是非线程安全的。手动同步不行么? --------------------编程问答-------------------- 怎么个手动同步法啊?
有可能有好几个类的非static方法同时需要操作这个map! --------------------编程问答-------------------- 线程安全使用 ConcurrentHashMap。 --------------------编程问答-------------------- HashMap --------------------编程问答-------------------- 把这个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了? --------------------编程问答--------------------
直接用这个 --------------------编程问答-------------------- 这个不错。呵呵 --------------------编程问答--------------------
一般来说性能从大到小,HashMap > TreeMap > LinkedHashMap > Hashtable
原因很简单,Hashtable是同步的,其他不同步的。
不过从你的需求来说,用TreeMap比较合适。
--------------------编程问答-------------------- treemap --------------------编程问答-------------------- 一般用hashmap,hibernate生成的映射文件里都是hashset,说明hash算法寻址比较快 --------------------编程问答-------------------- hashmap...
补充:Java , Java SE