gpt4 book ai didi

Java 2D 数组错误

转载 作者:行者123 更新时间:2023-12-01 15:04:53 26 4
gpt4 key购买 nike

因此,我需要使用一个 2D 数组对每个元素进行计算,并将其传输到另一个 2D 数组中,同时使用当前元素的“左”“右”“上”和“下”值。如果当前元素位于边缘(x = 0,y = 0,x = array.length,y = array.length),我将收到数组越界错误。我想创建一个 for 循环来处理每种情况,但我不知道该怎么做。我的代码示例是

private void buildE(int[][] array, int y, int x)
{

int up = array[y - 1][x];
int down = array[y + 1][x];
int left = array[y][x - 1];
int right = array[y][x + 1];

if(up == 0){

buildETopRow(array);

}

E 将是我的新数组。这个方法不起作用,因为 y 不等于 0,它只是不存在,但我也不能将 ints 设置为 null。在出现越界错误的情况下,我需要越界的元素(上、下、左或右)等于当前元素。有没有办法我仍然可以使用 for 循环来实现此目的,或者我需要做其他事情吗?

最佳答案

如果我正确地理解了这一点,您希望有效地将边缘上的元素与边缘外的元素的差异视为 0。如果这是真的,我会编写四个方法 right()、left()、up() 和down(),下面以 down() 为例:

 /*
* Return the difference between an element an the element below it
*/

public void down(int x, int y) {

if (y == array.length - 1) {
\\ on the bottom edge
return 0;
}

return array[y][x] - array[y + 1][x];

}

在你的循环中你会计算:

up(x,y) + down(x,y) + right(x,y) + left(x,y)

或者您需要总结的任何计算。

关于Java 2D 数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113523/

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