Delete Last List Item

I was instructed to do the following in a Java tutorial for newbies to ArrayList

// 1) Declare am ArrayList of strings
    // 2) Call the add method and add 10 random strings
    // 3) Iterate through all the elements in the ArrayList
    // 4) Remove the first and last element of the ArrayList
    // 5) Iterate through all the elements in the ArrayList, again.

Below is my code

import java.util.ArrayList;
import java.util.Random;

public class Ex1_BasicArrayList {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i <= 10; i++){
            Random rand = new Random();
            String randy = String.valueOf(rand);
            list.add(randy );
        }
        for (int i = 0; i < list.size(); i++){
            System.out.print(list.get(i));
        }   
        list.remove(0);
        list.remove(list.size());

        for (int i = 0; i < list.size(); i++){
            System.out.print(list.get(i));
        }
    }
}

The code starts, but the following error message appears on startup. Any ideas on what I'm doing wrong?

java.util.Random@7852e922java.util.Random@4e25154fjava.util.Random@70dea4ejava.util.Random@5c647e05java.util.Random@33909752java.util.Random@55f96302java.util.Random@3d4eac69java.util.Random@42a57993java.util.Random@75b84c92java.util.Random@6bc7c054Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.remove(Unknown Source)
    at apollo.exercises.ch08_collections.Ex1_BasicArrayList.main(Ex1_BasicArrayList.java:23)
+4
source share
2 answers

Listindices go from 0to list.size() - 1. Exceeding the upper bound leads toIndexOutOfBoundsException

list.remove(list.size() - 1);
+12
source

There are 11 elements in your list, their indices are 0-10. When you call list.remove(list.size());, you tell it to remove the item at index 11 (since the size of the list is 11), but that index goes beyond.

The index of the last element of any list is always (list.size () - 1).

+2
source

Source: https://habr.com/ru/post/1570522/


All Articles