java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 exception

We Are Going To Discuss About java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 exception . So lets Start this Java Article.

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 exception

  1. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 exception

    The problem is that you are using set method to update element at index 0
    set(index,value) method needs an element to present at that index
    but you haven't added any element at that position in medium arraylist before that .
    So you need to first add an element at index 0 thereafter only you can update it with set method

  2. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 exception

    The problem is that you are using set method to update element at index 0
    set(index,value) method needs an element to present at that index
    but you haven't added any element at that position in medium arraylist before that .
    So you need to first add an element at index 0 thereafter only you can update it with set method

Solution 1

The problem is that you are using set method to update element at index 0

set(index,value) method needs an element to present at that index

but you haven’t added any element at that position in medium arraylist before that .

So you need to first add an element at index 0 thereafter only you can update it with set method

Advertisements

Original Author Devansh Kumar Of This Content

Solution 2

You need to use

mediums.add(adDistribution.get(0));

rather than mediums.set(0, adDistribution.get(0)); etc.

ArrayList.set(int, Object) requires there to be an element to replace:

Replaces the element at the specified position in this list with the specified element.

Throws:
IndexOutOfBoundsException – if the index is out of range (index < 0 || index >= size())

In a new list, size() == 0, so set(0, something) fails.

Advertisements

Original Author Andy Turner Of This Content

Solution 3

EDIT:
I just removed the unnecessary if statements and simplified them to make your code more readable.
Then I have replaced the set functions with the add function, because the set only can set existing elements.

EDIT2: Based on Andy Turner’s answer, I modified my code. Thank you for the suggestions!

After these modifications, the code should look like this (add/remove/modify it for your needs):

public Collection<AdDistribution> getAdDistribution(byte srch, byte cont) throws IndexOutOfBoundsException {

    List<AdDistribution> mediums = new ArrayList<>();

    if( ( srch == 0 && cont == 0 ) || srch == 1 ) {
        mediums.add(AdDistribution.SEARCH);
    }

    if( cont == 1 ) {
        mediums.add(AdDistribution.CONTENT);
    }

    return mediums;
}
Advertisements

Original Author Pohkalopokh Of This Content

Conclusion

Advertisements

So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.

Also Read,

Siddharth

I am an Information Technology Engineer. I have Completed my MCA And I have 4 Year Plus Experience, I am a web developer with knowledge of multiple back-end platforms Like PHP, Node.js, Python and frontend JavaScript frameworks Like Angular, React, and Vue.

Leave a Comment