当前位置:编程学习 > JAVA >>

你好!要求用Map存一系列的bean,用哪个Map效率最高呢?

--------------------编程问答-------------------- HashMap 呗, 数据量不大,用哪个都一样 --------------------编程问答-------------------- 用HashMap

Hashtable:需要同步
TreeMap:需要排序
LinkedHashMap:双向指针,浪费 --------------------编程问答-------------------- TreeMap查找效率比LinkedHashMap高,但遍历的话应该是LinkedHashMap效率更高一些。 --------------------编程问答--------------------
引用 2 楼 goldenfish1919 的回复:
用HashMap

Hashtable:需要同步
TreeMap:需要排序
LinkedHashMap:双向指针,浪费
需要线程安全啊,因为系统中有好几个类要操作这个map。有可能有好几个类同时需要操作这个map! --------------------编程问答-------------------- 你列举的这些除了HastTable,其他都是非线程安全的。手动同步不行么? --------------------编程问答--------------------
引用 5 楼 xiongyu2006 的回复:
你列举的这些除了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也是可以的!
--------------------编程问答--------------------
引用 9 楼 xiongyu2006 的回复:
把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

    private HashMap<String, Integer> hp = null;

    public synchronized void put(Stri……
顶这个 --------------------编程问答--------------------
引用 9 楼 xiongyu2006 的回复:
把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

    private HashMap<String, Integer> hp = null;

    public synchronized void put(Stri……
谢谢,我觉得您的这个主意不错!
操作方法synchronized 了,是不是HashMap和HashTable随意用了? --------------------编程问答--------------------
引用 11 楼 onlyonelove 的回复:
引用 9 楼 xiongyu2006 的回复:

把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

private HashMap<String, Integer> hp = null;

public……
是不是操作方法加了synchronized ,就可以用HashMap了呢? --------------------编程问答--------------------
引用 11 楼 onlyonelove 的回复:
引用 9 楼 xiongyu2006 的回复:

把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

private HashMap<String, Integer> hp = null;

public……


肿么可能……这些东西应该有人告诉你的

[Quote]
还要用同步的单例模式才行……你的方法synchronized 了,用hashmap就行了


--------------------编程问答--------------------
引用 13 楼 z25765339 的回复:
引用 11 楼 onlyonelove 的回复:

引用 9 楼 xiongyu2006 的回复:

把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

private HashMap<String, I……
这样子可以用hashmap了? --------------------编程问答--------------------
引用 7 楼 huntor 的回复:
线程安全使用 ConcurrentHashMap。


直接用这个 --------------------编程问答--------------------
引用 9 楼 xiongyu2006 的回复:
把这个map封装在一个类里面,同步他的操作方法不知道能不能满足你的需要。类似这样
Java code

import java.util.HashMap;

public class SynchronizedMap
{

    private HashMap<String, Integer> hp = null;

    public synchronized void p……
这个不错。呵呵 --------------------编程问答--------------------
一般来说性能从大到小,HashMap > TreeMap > LinkedHashMap >  Hashtable 
原因很简单,Hashtable是同步的,其他不同步的。

不过从你的需求来说,用TreeMap比较合适。

--------------------编程问答-------------------- treemap --------------------编程问答-------------------- 一般用hashmap,hibernate生成的映射文件里都是hashset,说明hash算法寻址比较快 --------------------编程问答-------------------- hashmap...
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,