Как исправить индекс ArrayList Out за пределы ошибки длины в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить индекс ArrayList Out за пределы ошибки длины в Java

Сообщение Anonymous »

Я пишу программу для школы, которая выступает в качестве кассового аппарата. Я прошу вклад в цены на предметы и воспроизводить их в постоянный ArrayList до тех пор, пока пользователь не введет -1 или 0. 0 для повторного входа в предыдущую цену в случае ошибки и -1 не завершит цикл. < /P>

Я получаю < /p>


java. границы для длины 0 < /p>
< /blockquote>

Ошибка, когда я пытаюсь запустить свой код.
Я должен включить метод с именем removelastentry () < /code>, который удалит последнюю цену, введенную в массив, на 0, введенный пользователем. Как я могу гарантировать, что массив заполнен, и я действительно удаляю последнюю запись? Сам метод настроен на удаление ArrayList.size ()-1, чтобы он удалял последнюю запись. Я попробовал это с -2 и 0, и у него все еще не хватает границ. Указатель вышел из границ по элементам - 1 длина
Я уверен, что ошибаюсь новичком, но я не могу ее найти, и она сводит меня с ума! /> at java.base /jdk.internal.util.preconditions.outofbounds (preconditions.java:64)
at java.base /jdk.internal.util.preconditions.outofboundscheckindex (preconditions.java:70) AT java.base /jdk.internal.util.preconditions.checkindex (preconditions.java:248)
at java.base /java.util.objects.checkindex (Objects.java:372)
at java.base /java.util.ray.greav.jraylist.jraylist.jraylist.jraylist.jraylist.jraylist.jraylist.jj at c_m_ideaproject.main (c_m_ideaproject.java:76) < /p>
< /blockquote>

// declare our array list which will hold our prices!
ArrayList prices = new ArrayList();

// declaring variables to terminate loop, count prices, total prices, and current entry for conditions
int counter = 0;
double entry = 0;
double total = 0;

// our loop to continuously add prices to the array list from input
while (entry != -1) {

System.out.println("Enter a price for item #" + (counter+1) + ": ");
entry = myInput.nextDouble();

// if the entry is a price we will add it to prices and continue with the loop

if (entry != 0 && entry != -1) {
prices.add(entry);
total += entry;
counter++;
}

//if the entry is 0 we will revert back to the previous iteration to re-add

else if (entry == 0.0) {
total -= prices.get(counter-1);
removeLastEntry(prices);
counter--;
}

public static void removeLastEntry(ArrayList anArrayList) {
anArrayList.remove(anArrayList.size()-1);
}


Подробнее здесь: https://stackoverflow.com/questions/554 ... or-in-java
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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