Я хочу, чтобы удалить элементы, которые находятся в routedClients
от array
, поэтому я преобразовал его в ArrayList
, затем использовал remove
, в конце концов я преобразовал его обратно в double[][]
массив. Но когда я исполню его, он дает мне это сообщение об этой линии:Удалить элементы из 2D массива
double[][] remainingStockout = (double[][]) stockout.toArray();
Ошибка:
Исключение в потоке «основного» java.lang.ClassCastException: [Ljava.lang.Object ; не может быть применено к [[Ljava.lang.Double;
Любая помощь была бы действительно оценена. :)
public double[][] removeSite(double[][] array) {
List<double[]> stockout = new ArrayList<double[]>(Arrays.asList(array));
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < routedClients.size(); j++) {
if (array[i][0] == routedClients.get(j)) {
stockout.remove(i);
}
}
}
double[][] remainingStockout = (double[][]) stockout.toArray();
return remainingStockout;
}
Массив, который вы использовали, по-видимому, имеет примитивный тип, попробуйте ввести код ниже и подтвердите, работает ли он (используйте Double вместо double): Двойной [] [] ОсталосьStockout = (Двойной [] []) outout.toArray(); – amitmah
Он по-прежнему дает мне исключение: Исключение в потоке «main» java.lang.ClassCastException: [Ljava.lang.Object; не может быть применено к [[Ljava.lang.Double; –
Можете ли вы отлаживать и распечатывать то, что является типом, возвращаемым else.toArray(); – amitmah