java - 如何编辑在地图内设置为值的列表?(具体示例;Java)
问题描述
假设我有一张像
Map<Integer, List<Integer>> map = new HashMap<>();
列表内有数字 {10,21,35,42,50}。
我想用下面的数字减去每个数字,例如 21-10、35-21 等等。
最终目标是列表具有 {11, 14, 7, 8}。
我遇到了麻烦,因为如果将列表设置为值,我不知道如何编辑它。
提前致谢。
解决方案
以下代码将执行此操作:
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;
}
我应该注意:这会将地图中的列表替换为包含您想要的值的新列表,因此如果您需要保留相同的列表,它将不起作用。
推荐阅读
- python - 将 dtype=object 转换为二进制值
- git - 使用 Visual Studio 2019 的全球 .gitignore?
- django - Django Rest Framework:如何创建和更新多对多字段?
- sql - 具有特定概率的 SQL/雪花采样
- java - 从中移动文件后删除目录[Java]
- windows - 在 Assembly 中调用过程时是否需要使用方括号?
- r - 使用 assign() 处理范围界定问题是否有问题?
- extjs - Sencha WebtestIt - 浏览器启动 url 'data:,'?
- python - Groupby 不显示它的计数
- javascript - 有没有办法让 Enter 和 Shift + Enter 在 TinyMCE 中以相同的方式工作?