【问题标题】:How can I edit a List which is set as a Value inside of a Map? (Specific example; Java)如何编辑在地图内设置为值的列表? (具体示例;Java)
【发布时间】:2019-05-15 23:11:54
【问题描述】:

假设我有一张类似的地图

Map<Integer, List<Integer>> map = new HashMap<>();

列表内有数字 {10,21,35,42,50}。

我想用以下数字减去每个数字,例如21-10、35-21 等。

最终目标是列表具有 {11,14,7,8}。

我遇到了麻烦,因为如果列表设置为值,我不知道如何编辑它。

提前致谢。

【问题讨论】:

  • 你知道钥匙吗?
  • 在这个例子中,我使用不同的键遍历地图,
  • 你熟悉HashMapget()put()方法吗?
  • 我想我是,这就是代码的样子:for(Map.Entry&lt;String, List&lt;Integer&gt;&gt; entry : companies.entrySet()); 我想遍历每个键,但按照我上面提到的方式更改值。

标签: java list dictionary key key-value


【解决方案1】:

以下代码将执行此操作:

public void someMethod() {
    Map<Integer, List<Integer>> map = new HashMap<>();
    // Fill the map with values.

    for (Integer key : map.keySet()) {
        map.put(key, generateNewList(map.get(key)));
    }
}

private List<Integer> generateNewList(List<Integer> inputList) {
    List<Integer> newList = new ArrayList<>(inputList.size()-1);
    for (int i = 1; i < inputList.size(); i++) {
        newList.add(inputList.get(i) - inputList.get(i-1));
    }
    return newList;
}

我应该注意:这会将地图中的列表替换为包含您想要的值的新列表,因此如果您需要保留相同的列表,它将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多