2015-01-16 7 views
-4
private static void printInvoice() { 

    for (int i = 0; i < customerList.size(); i++) { 
     System.out.println(customerList.get(i).getName()); 
     customerList.get(i).invoiceForCustomer(); 

    } 

После того, как этот список распечатывается, я хочу его удалить, любые предложения, как я могу это сделать?Как удалить элементы из ArrayList?

+1

Вы, вероятно, следует добавить язык тегов (..java?) – chancea

+0

Вы хотите удалить все элементы или только одного элемента? – b4hand

+0

@ Арканон это не дубликат. Это точный дубликат того же пользователя на расстоянии 3 часа. – chancea

ответ

0

Чтобы сохранить значения и не получить исключение индекса массива вне пределов, вам нужно сделать его с самого начала. А также использовать удалить()

Так что ваш код будет выглядеть следующим образом:

for (int i = customerList.size()-1; i >= 0; i--) { 
    System.out.println(customerList.get(i).getName()); 
    customerList.remove(i);  
} 
+1

, который должен быть 'i -', и я думаю, вы можете просто сказать 'System.out .println (customerList.remove (i) .getName()); 'поскольку' remove() 'получает ваш элемент также – chancea

+0

i обновил код – roeygol

+0

@LinusJohnsson - вы также можете заметить, что этот правильный ответ между всеми остальными – roeygol

0

Если ваша цель состоит в том, чтобы очистить все элементы из списка (конец с пустым customerList после того как вы закончили печать и получение счетов-фактур), вы можете использовать прозрачный метод ArrayList после завершения цикла.

private static void printInvoice() { 

    for (int i = 0; i < customerList.size(); i++) { 
     System.out.println(customerList.get(i).getName()); 
     customerList.get(i).invoiceForCustomer(); 

    } 

    customerList.clear(); 
Смежные вопросы