首页 > 解决方案 > 如何编辑在地图内设置为值的列表?(具体示例;Java)

问题描述

假设我有一张像

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

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

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

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

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

提前致谢。

标签: javalistdictionarykeykey-value

解决方案


以下代码将执行此操作:

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;
}

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


推荐阅读