所以我试图比较 2 个元素的行/列位置,看它们是否相邻。经过大量搜索后,我找不到我在 SO 上寻找类似问题的内容。
无论如何,我的主要问题只是关于我的其中一行代码的语法。所以这就是我所拥有的:
private boolean adjacent(int row, int col)
{
boolean adjacent = true;
Dot d2 = gameArray[row][col];
Descriptor D2 = new Descriptor (row, col, d2);
Descriptor D1 = list.get(list.size()-1);
if (D1.row() == D2.row() && D1.col() == D2.col() +1) {
adjacent = true;
}
return adjacent;
}
基本上我正在查看的是 if
行。我想保持简单并检查元素 D2 的 col
位置是否为 +/- 1。所以我想使用绝对值,但不是作为 ArrayList 方法,只是像 这样简单的东西|1|
之类的。
我如何将其实现到 if
语句的 == D2.col()
部分?
谢谢
最佳答案
一种方法是:
if (Math.abs(D1.row() - D2.row()) + Math.abs(D1.col() - D2.col()) == 1)
两个非负整数之和为 1 当且仅当其中一个等于 1 而另一个等于 0,这正是您想要的。
编辑:现在我更仔细地阅读了您的问题,我意识到如果两个元素位于相邻行的同一列中,您不会考虑相邻的两个元素。那么语句就更简单了:
if (D1.row() == D2.row() && Math.abs(D1.col() - D2.col()) == 1)
关于java - 比较二维数组中的 2 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40352249/