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
- 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 - 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
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.
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;
}
Original Author Pohkalopokh Of This Content
Conclusion
So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.