У меня проблемы с удалением нулевых значений из 2D-массива.Я все еще новичок в программировании.Я искал решения в Интернете, но я не нашел ничего полезного.
Это и упражнение в университете, поэтому имя массива изменили просто на «массив», то же самое для его объектов.Это то, что у меня есть:
import java.util.ArrayList;
public class Compact
{
public static void Compact(object[][] array)
{
ArrayList<object> list = new ArrayList<object>();
for(int i=0; i<array.length; i++){
for(int j=0; j < array[i].length; j++){
if(array[i][j] != null){
list.add(array[i][j]);
}
}
}
array = list.toArray($not sure what to typ here$);
}
}
Я основал это на решении, которое я нашел для одномерных массивов, но проблема в том, что список является одномерным, так как мне вернуть структуру двумерного массива?«Новый» массив должен быть меньше, без нулевых значений.
Я думал о создании списка для массива [i] и одного для массива [i] [j], но как мне их объединить?снова в 1 2D массив?
Вся помощь очень ценится!
=======================================
Редактировать: это решение, txx всем:
public void compact(Student[][] registrations)
{
for(int i=0; i < registrations.length; i++){
ArrayList<Student> list = new ArrayList<Student>(); // creates a list to store the elements != null
for(int j = 0; j < registrations[i].length; j++){
if(registrations[i][j] != null){
list.add(registrations[i][j]); // elements != null will be added to the list.
}
}
registrations[i] = list.toArray(new Student[list.size()]); // all elements from list to an array.
}
}