java - 使用 putAll() 复制树状图的 Java 树状图

标签 java copy treemap

我在 TreeMap 中有一个 TreeMap。

TreeMap <String, TreeMap<String, Double>> x_probs_org = new TreeMap<String, TreeMap<String, Double>>();

但是当我用完全相同的定义制作另一个,然后复制第一个时:
x_probs.putAll(x_probs_org);

我注意到新的树状图不会复制所有内容。它正确复制所有字符串键,但仅复制值中的最后一个元素 (TreeMap)。除了滚动浏览整个第一个树状图然后将元素添加到新的树状图之外,有没有更简单的方法可以做到这一点?

我只需要具有相同数据的相同数据结构开始。我所做的是运行我填充第一个树状图的循环,然后简单地将下一个与它放在同一个循环中。这也不起作用:
// build tempMap up there...
x_probs_org.put(tokens[0], tempMap);    
x_probs.put(tokens[0], tempMap);

x_probs 坚持 x_probs_org 设法获得的缺失数据。 “tempMap”是否会因为填充一次内容而筋疲力尽?

最佳答案

这对我有用:

public static void main(String[] args) {
    Map <String, Map<String, Double>> map = new TreeMap<String, Map<String, Double>>();
    Map<String, Double> innerMap = new TreeMap<String, Double>();
    innerMap.put("a", 1.0);
    innerMap.put("b", 2.0);
    map.put("inner1", innerMap);
    innerMap = new TreeMap<String, Double>();
    innerMap.put("c", 3.0);
    innerMap.put("d", 4.0);
    map.put("inner2", innerMap);

    Map <String, Map<String, Double>> newMap = new TreeMap<String, Map<String, Double>>();
    newMap.putAll(map);

    System.out.println(map); // prints {inner1={a=1.0, b=2.0}, inner2={c=3.0, d=4.0}}
    System.out.println(newMap); // prints {inner1={a=1.0, b=2.0}, inner2={c=3.0, d=4.0}}
}

关于java - 使用 putAll() 复制树状图的 Java 树状图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820208/

相关文章:

java - 将 TreeMap 的键存储在值中(java)

java - 如何让 Servlet Filter 处理嵌入式 Jetty 中的欢迎文件?

java - 在 Java 中使用 3 维数组的卡片组

java - 使用mockito模拟控制台

linux - 在 Unix/Linux 中将特定文件从一个文件夹复制到另一个文件夹

windows - CMD - 任何将文本复制到剪贴板的命令?

android - 从Kotlin Android中的Application变量创建单独的ArrayList

java - 迭代由 MySQL 表填充的数组

javascript - 如何绘制多个 d3js 可缩放 TreeMap

java - 如何配置 ContextLoaderListener 不寻找 applicationContext.xml