Java 查看二维阵列中的元素

Java 查看二维阵列中的元素,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我正在使用2D数组,我想查看最后一行中最小元素的“左上”“右上”和“左上”元素。我有一个代码可以工作,但是它显示了行中每个元素的所有方向,而不仅仅是最小的方向。有人能帮忙吗?这是我的代码: for (int y = array.length-1; y == array.length-1; y--) { for (int x = 0; x < array[y].length; x++) { int lowest = array[y][0];

我正在使用2D数组,我想查看最后一行中最小元素的“左上”“右上”和“左上”元素。我有一个代码可以工作,但是它显示了行中每个元素的所有方向,而不仅仅是最小的方向。有人能帮忙吗?这是我的代码:

for (int y = array.length-1; y == array.length-1; y--)
{
    for (int x = 0; x < array[y].length; x++)
    {
        int lowest = array[y][0];  
        for (x = 0; x < array[y].length; x++)
        {
            if (array[y][x] <= lowest)
                lowest = array[y][x];

            //if element is on left
            if (x == 0)
            {
                up = array[y-1][x];
                upRight = array[y-1][x+1];
                upLeft = 0;
            }

            //if element is on right
            else if (x == array[0].length - 1)
            {
                upLeft = array[y-1][x-1];
                up = array[y-1][x];
                upRight = 0;
            }

            //if element is anywhere else
            else
            {
                upLeft = array[y-1][x-1];
                up = array[y-1][x];
                upRight = array[y-1][x+1];
            }
        }
    }
for(int y=array.length-1;y==array.length-1;y--)
{
对于(int x=0;x如果(数组[y][x]一对观测值

目前,您似乎有两个嵌套的
for
循环,您正在迭代整个数组。从您的描述来看,这似乎不是必需的,您可以搜索
数组[array.length-1]
以获得最低值

专注于编写一个单独的步骤(可能是它自己的方法),该步骤将在最后一行中找到最低值的索引

查找左上角、右上角和右上角的逻辑基本正确。您只需根据最后一行中最低值的索引查看
array[array.length-2]
中的元素即可


更新:

您在问题中提到,您的代码“显示行中每个元素的所有方向”。您没有包含任何显示结果的代码,但从您下面的评论来看,您的问题似乎如下所示:

设置
upLeft
up
直立
的代码位于搜索最低值的循环中。即,您有:

for (x = 0; x < array[y].length; x++)
        {
            if (array[y][x] <= lowest)
                lowest = array[y][x];

            //if element is on left
            if (x == 0)

等等。

显示数组中的数据示例…如果我有一个数组:{1 3 4 5},{3 7 8 2},{4 5 2},那么“top”etcOk是什么意思最后一行中的最小值是2,upLeft应该是7,up应该是8,vertight应该是2。如果upLeft或vertight超出范围,它会将其中一个设置为0。我对整个数组使用嵌套for循环的原因是因为我需要找到“上面”的最小值最后一个元素,然后执行相同的操作,直到到达数组的顶部。我没有提到这一点,但这不是我在momentOK集中讨论的一个步骤,我已经用更多的建议更新了答案。希望它为您指明了正确的方向。如果变量indexOfLowest在内部循环中,但其余代码在外部内部循环indexOfLowest=x;如何设置为if(indexOfLowest==0)?您好。既然您已经将答案标记为已接受,您现在就知道了吗?如果没有,建议在您当前执行
int-lowest=array[y][0];
之后,我声明并初始化
int-indexOfLowest=0
for (x = 0; x < array[y].length; x++)
{
    if (array[y][x] <= lowest) {
        lowest = array[y][x];
        indexOfLowest = x;
    }
}
//if element is on left
if (indexOfLowest == 0)