Java: удалить набор объектов (например, информацию о транспортном средстве с идентификатором xxx) из списка и вернуть удJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java: удалить набор объектов (например, информацию о транспортном средстве с идентификатором xxx) из списка и вернуть уд

Сообщение Anonymous »

Я хочу удалить коллекцию объектов из списка, удаленные объекты должны быть добавлены в новый список и возвращены. Ожидаемый возврат удаленного объекта (автомобиля) при выводе на печать выглядит следующим образом:

Код: Выделить всё

[15NG22 Volvo Car]
или [152235 Танк Шерман]
Если из списка не было удалено ни одного объекта, верните значение null. В классе Vehicle у меня есть конструктор: public Vehicle (String VehicleID, String VehicleName, String VehicleType) {this.vehicleID = VehicleID; this.vehicleName = имя транспортного средства; this.vehicleType = Тип транспортного средства; и сеттеры/геттеры.
В классе VehicleShop:

Код: Выделить всё

Vehicle vehicle = new vehicle(vehicleID, vehicleName, vehicleType);
List listOfVehicles = new ArrayList();
В классе VehicleShop у меня также есть функция, которая будет обрабатывать удаление транспортного средства и его объектов.

Код: Выделить всё

public List deleteVehicle(String vehicleID) {

List deletedVehicleList = new ArrayList(listOfVehicles);
List deletedVehicleDetailsList = new ArrayList();

Iterator it = listOfVehicles.listIterator();

while(it.hasNext()) {
String next = (String) it.next();
if(next.getVehicleID().equals(vehicleID)) {

it.remove();

System.out.println(next);
deletedVehicleDetailsList.add(next);

String deletedVehicleString = String.join(" ", deletedVehicleList);
System.out.println(deletedCustomerList);

Collections.addAll(deletedVehicleDetailsList, deletedVehicleString);
System.out.println(deletedVehicleDetailsList);

return deletedVehicleDetailsList;
}
}
deletedVehicleDetailsList = null;

return deletedVehicleDetailsList;
}
В функции addVehicle при запуске кода успешно добавляются автомобили в список транспортных средств (например, [123, Volvo, Truck, 242, Cat, Bulldozer, 666, Baneblade, Tank...] Но при попытке удалить транспортное средство возникла ошибка, и оно остановилось.
Ошибка находится в операторе if- в файле. Пока-итерация:

Код: Выделить всё

if(next.getVehicleID().equals(vehicleID))
и именно getVehicle() получает сообщение об ошибке: «Метод getVehicle() не определен для типа String».
Я тестировал другие решения, например

Код: Выделить всё

        if(listOfVehicles.contains(vehicleID)) {
List deletedVehicleList = listOfVehicles.stream()
.filter(customer -> customer.getVehicleID().equals(vehicleID))
.collect(Collectors.toList());
}else {
deletedVehicleDetailsList = null;
}
По-прежнему возникает та же ошибка с getVehicleID() . Я также пробовал Predicate и лямбда, но результат тот же.
Спасибо за любые объяснения и пояснения, что я сделал/подумал неправильно.

Подробнее здесь: https://stackoverflow.com/questions/792 ... with-id-xx
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»