Список массивов Удалить индекс

Я уже много лет работаю над этим. У меня есть массив Java 8, где много строк находятся в одном индексе.

(индекс 0) Марка: Nissan Цвет: Черный ID: KL1 Дверь: 4
(индекс 1) Марка: Ford Цвет: Красный ID: LL0 Дверь: 4

Я хочу, чтобы пользователь вводил только ID, и он должен удалить все данные в индексе. К сожалению, Iterator не будет работать здесь. Любые идеи, как это можно сделать?

java,arraylist,

0

Ответов: 3


0 принят

Вы должны создать класс, который будет содержать эти данные, связанные с автомобилем. В качестве примера возьмем следующий код. Я использовал функцию, которая внутренне выполняет итерацию по public static void main ( String [] args ) { List < Car > list = new ArrayList <> ( Arrays . AsList ( новый автомобиль ( «Nissan» , «Black» , «KL1» , «4» ), новый автомобиль ( «Форд» , «Красный» ,public class Main { public static void main(String[] args){ List<Car> list = new ArrayList<>(Arrays.asList(new Car("Nissan", "Black", "KL1", "4"), new Car("Ford", "Red", "LL0", "4"))); String id = "KL1"; list.removeIf(i -> i.getID().equals(id)); list.forEach(System.out::println); // show the list after operation } static class Car { public final String Brand; public final String Colour; public final String ID; public final String Door; public Car(String brand, String colour, String ID, String door) { Brand = brand; Colour = colour; this.ID = ID; Door = door; } public String getBrand() { return Brand; } public String getColour() { return Colour; } public String getID() { return ID; } public String getDoor() { return Door; } } } «LL0» , «4» ))); Строка id = "KL1" ; // Следующий код найдет и удалит совпадение из списка. // this for loop делает именно то, что он делает: list.removeIf (i -> i.getID (). equals (id)); for ( int i = 0 ; i < list . size (); i ++) { if ( list . get ( i ). getID (). equals ( id )) { list . удалить ( i ); перерыв ; } } } .

List

Обновить

Вы также можете сделать это, сделав это

LinkedList

3

OOP

Используйте базовый объектно-ориентированный подход.

Создайте класс для представления каждой строки данных с четырьмя полями: брендом, цветом, идентификатором, дверью.

Разбирайте каждую строку текста, чтобы создать экземпляр объекта этого класса. Соберите объекты в a List.

Прокрутите список и допросите каждый объект для его идентификатора, чтобы он соответствовал вашему желаемому идентификатору.

Для скорости добавления / удаления элементов используйте ArrayListвместо него, а не Listкак реализацию List.


0

Хранение данных в строке напоминает мне старые добрые времена в 80-х. Следуйте советам Basil Borque, а затем, чтобы избежать одновременного исключения из-за ошибки, начните с конца массива. Таким образом, вы можете удалить из списка и продолжить предыдущий, а не следующий (что вызовет исключение)

Java, ArrayList,
Похожие вопросы