经过一番研究,我发现了如何在2D数组中找到项目的索引。但是,我只需要一个值,行号以及您要查找的项目不止一次出现的情况? 你如何存储所有这些时间的行号?
for(int j = 0; j < size; j++)
{
if (arr[i][j] == 88)
{
return i; // The value i wanna store
break;
}
}
如果数字88出现多次,我如何存储所有不同的位置,然后再检索它?
答案 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;