gpt4 book ai didi

java - 检查不同 ArrayList 的元素是否共享位置

转载 作者:行者123 更新时间:2023-11-30 03:32:44 27 4
gpt4 key购买 nike

我正在用 Java 编写一个在 2D 板上移动的探针。为此,我有两个 Integer 数组列表,其中包含探测器所遵循的路径。第一个 ArrayList 包含 x 坐标,第二个 ArrayList 包含 y 坐标。我想做的是检查运动的下一个图 block 是否已被访问,即新的x坐标和新的y坐标是否在相应的ArrayList中并共享相同的位置。这样,如果新的图 block 已经被访问过,我就不会搬到那里。我怎么可能这么做呢?我尝试过使用 indexOflastIndexOf,但它不起作用,因为每个坐标都可以无限次重复。我也尝试过 .contains 但它也不起作用,因为我需要它包含在两个数组中的特定位置。

如有任何帮助,我们将不胜感激。

最佳答案

首先,Java 是面向对象的,所以你应该使用对象。为什么要将坐标存储在两个单独的数组中?

您可以定义自己的类型:

class Position implements Comparable<Position> {
public final int x;
public final int y;

Position(int x, int y) { this.x = x; this.y; }
@Override public int compareTo(Position other) { ... }
@Override public boolean equals(Object other) { ... }
@Override public int hashCode() { ... }
}

然后你就可以做任何你想做的事情,例如

Set<Position> visited = new HashSet<Position>();
Map<Position, Integer> visitedWithSpecificPositionInPath = new HashMap<Position, Integer();

等等。

关于java - 检查不同 ArrayList 的元素是否共享位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28647555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com