查找2D阵列中项目的索引

时间:2017-04-11 19:34:43

标签: java oop

经过一番研究,我发现了如何在2D数组中找到项目的索引。但是,我只需要一个值,行号以及您要查找的项目不止一次出现的情况? 你如何存储所有这些时间的行号?

for(int j = 0; j < size; j++)
{
    if (arr[i][j] == 88)
    {
        return i; // The value i wanna store
        break;
    }
 }

如果数字88出现多次,我如何存储所有不同的位置,然后再检索它?

2 个答案:

答案 0 :(得分:3)

您可以将所需的值存储在List

List<Integer> rows = new ArrayList<>();
for (int i = 0; i < size; i++) {
    for (int j = 0; j < size; j++) {
        if (arr[i][j] == 88) {
            rows.Add(i); // The value i wanna store
            break; // exit inner loop and continue with next row
        }
    }
}

答案 1 :(得分:2)

  

我只有一个值,即行号   但如果88出现不止一次,我怎么能存储所有不同的   位置,然后检索它?

考虑到你不知道你可能会找到多少重复的值副本,我建议使用ArrayList来存储索引。

在循环之前创建它:

List<Integer> indexList = new ArrayList<>();

然后在if块中只需添加您在ArrayList中找到的值的索引值:

if (arr[i][j] == 88){
    indexList.add(i);
    break;
}

如果您的方法需要返回数据,则可以返回ArrayList:

return indexList; // after the loops have finished processing

但是,如果方法返回类型为void,那么您可以忽略return indexList;