如何通过特定索引在树形图中添加值和键

时间:2014-11-20 13:01:13

标签: java

我试过了

       int index = new ArrayList<String>(treemap.values()).indexOf("something");

但我没有得到如何替换价值和关键。

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:1)

你不能,TreeMap是一个有序的键映射类型。密钥按红黑树算法排序。所以键是按顺序排列的。

如果您对添加元素的顺序感兴趣,请使用LinkedHashMap。

你的问题是:

  • 删除密钥下的条目
  • 使用新值添加密钥

PS: 更新密钥和值意味着删除旧密钥,而不是更改它。

地图规范:

  • HashMap - 简单的键/值对,未排序,无法找到插入顺序
  • LinekdHashMap - 未排序,但保持插入顺序
  • TreeMap - 对键进行排序,但无法找到插入顺序

答案 1 :(得分:0)

TreeMaps不这样做。它们不是一个索引集合(与Lists不同),所以你要做的就是不行。

如果密钥更改,则需要删除旧密码,然后重新插入新的密钥值对。

答案 2 :(得分:0)

效率不高:

for (Map.Entry<String, String> entry : treemap.entrySet()) {
    if (entry.getValue().equals("something")) {
        entry.setValue("entirely different");
        //treemap.remove(entry.getKey());
        break;
    }
}