While working on JAVA assignment, discovered strange error while trying to add an element to list. I am using example code to demonstrate and fix this exception.
Note : Here existing array is converted into list using JAVA API.
Code Sample :
public static void main(String[] args) {
Integer [] array = {1,2,3};
List<Integer> asList = Arrays.asList(array);
asList.add(0, 100);
asList.forEach(s-> System.out.println(s+ " "));
}
Error : Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.AbstractList.add(AbstractList.java:153)
at com.learning.concepts.PlusOne.main(PlusOne.java:13)
Root Cause : Arrays.asList() method returns a non-resizable list backed by the array. From that method's documentation:
Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.)
Solution : In order to use a resizable list use the following to convert array into list.
List<Integer> asList = new ArrayList<Integer>(Arrays.asList(array));
No comments:
Post a Comment