Вопрос: Почему я получаю ошибку IndexoutOfBound?java.lang.indexOutOfBound с использованием arraylist
Справочная информация: Я пишу приложение для магазина. Использование List ArrayList для хранения всех элементов, переданных через CSV-файл. Я написал продукт obj, и он заполняется правильно. Я использую корзину obj, которую я написал для итерации, хотя этот список продуктов выполняет добавление и удаление методов на отдельной корзине ArrayList. По какой-то причине я получаю ошибку java.lang.IndexOutOfBound при сопоставлении ввода пользователя с атрибутом name моего объекта продукта. Для этого я использую метод .equals из класса string.
Код ниже: Это мой собственный метод adAdd для моего объекта. Он заставляет пользователя вводить строку, а затем использует это, чтобы найти определенный элемент в моем списке, чтобы выполнить добавление в мой местный список корзины. Он также удаляет этот элемент из исходного списка.
private boolean performAdd(Inventory inventory){
// return value
boolean success = false;
Scanner in = new Scanner(System.in);
System.out.println("Please provide the name of the item you would like to add to the cart");
String temp = in.nextLine();
System.out.println(temp);
Iterator itr = inventory.productList.iterator();
// empty product object using default
Product prod = new Product();
int i = 0; // index values for grabbing objects from the inventory list
// looping through the array list of our inventory of items
while (itr.hasNext()){
// check to see which product has the same name as what the user said
if (temp.equals(inventory.productList.get(i).getName())){
prod = inventory.productList.get(i); // grab the product object from inventory list and assign empty product object
inventory.productList.remove(i); // remove this object from the inventory list
addToCart(prod); // call to in class method for cart
success = true; // change boolean return value
}
i++; // increment index
}
return success;
}
Вы уверены, что на товарном листе на самом деле есть элементы для итерации? Попробуйте распечатать все элементы, чтобы подтвердить это. –