Вы не будете знать, сколько элементов соответствует вашим критериям, поэтому вам нужно использовать изменяемый объект.Поскольку каждая строка может иметь различное количество совпадающих чисел, вы не сможете создать обычный массив без нулевых значений в нем большую часть времени.
Используйте 2D ArrayList
, просматривайте оригинал2D-массив и добавьте значение, соответствующее вашим критериям, в соответствующую строку вашего ArrayList
.
. Вы можете сделать что-то вроде этого:
int width = arr[0].length-1;
ArrayList<ArrayList<Integer>> listoflists= new ArrayList<ArrayList<Integer>>();
// Scan array for matching values
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
{
listoflists.add(new ArrayList<Integer>());
if(j==0 && arr[i][0]<arr[i][1])
listoflist.get(i).add(arr[i][0]);
else if(j==width && arr[i][width]>arr[i][width-1]
listoflist.get(i).add(arr[i][width]);
else if( #this is the last condition to check from both sides)
listoflist.get(i).add(arr[i][j]);
}
}