java - 快速复制 HashMap

标签 java algorithm arraylist clone

<分区>

Possible Duplicate:
clone utility for HashMap in java

我有一个一对一的 map :

      HashMap<Integer, ArrayList<Double>> matrix;

Integer 是索引,ArrayList 的维度约为 50。索引的大小可能高达一百万。我想尽快复制它(包括 Arraylist 值)。

我做了以下操作:

 public Map<Integer,ArrayList<Double>> getCloneOfMatrix(){
 Map<Integer, ArrayList<Double>> newMatrix = new HashMap<Integer,ArrayList<Double>>(); 
    for(int i=0 ; i < indexSize; i++){
        ArrayList<Double> arrList = new ArrayList<Double>();
        arrList=(ArrayList<Double>) matrix.get(i).clone();
        newMatrix.put(i,arrList);

    }           
    return   newMatrix;
}

我发现它在计算上很昂贵,有什么方法可以更快地做到这一点。

最佳答案

最快的方法是避免首先制作副本。

如果您使用写时复制方法,您可以有两个对同一结构的引用,但都不会看到其他更改。这避免了复制所有内容的需要,并且根据您的使用情况,避免了复制任何内容的需要。

关于java - 快速复制 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11540498/

相关文章:

algorithm - 根据移动物体到目标的距离计算其速度

python - 插入排序不能正确排序数组

java - 在tomcat服务器中部署war文件

java - JAXB 返回互斥注释异常

c# - 如何在 C# 中实现点在凸多边形算法中的有效测试?

java - 如何在不同类型的 ArrayList 中使用相同的方法?

java - 如何将 ArrayList 添加到 jtable?

java - 如何从包含键 String 和 list<Object> 的 hashmap 中仅获取一个值

java - 使用数组显示用户输入的值

java - 用语言处理 racognizng 字符串的堆栈,不断出现错误,它是基于数组的实现