如果您可以List
用作数据结构来存储数据,而不是Map
将结果存储在 Map 的值中,则可以使用以下代码段并将结果存储在同一个对象中。
这是一个节点类:
private class Node {
public int row, col, distance;
public Node(int row, int col, int distance) {
this.row = row;
this.col = col;
this.distance = distance;
}
public boolean equals(Object o) {
return (o instanceof Node &&
row == ((Node) o).row &&
col == ((Node) o).col);
}
}
如果您将结果存储在距离变量中,并且根据它们的坐标检查列表中的项目,您可以使用以下方法在lastIndexOf方法的帮助下将距离更改为新的距离,只要您只需要存储一个元素对于每个数据:
List<Node> nodeList;
nodeList = new ArrayList<>(Arrays.asList(new Node(1, 2, 1), new Node(3, 4, 5)));
Node tempNode = new Node(1, 2, 10);
if(nodeList.contains(tempNode))
nodeList.get(nodeList.lastIndexOf(tempNode)).distance += tempNode.distance;
它基本上是重新实现Set
可以访问和更改哪些项目。