UnsupportedOperationException while removing or adding elements from List

Problem statement:
While running following code, UnsupportedOperationException is thrown both at .add() and .remove() method. What is the problem with the code?

List myNewList = Array.asList(someArrayOfLong);
myNewList.add(new Long(15)); //add an element in the list.
myNewList.remove(0); //remove element from the list at index 0.

Solution:
By the time you get to the remove(i) statement, list is no longer a java.util.ArrayList. When you call Arrays.asList it does not return a java.util.ArrayList. It returns a java.util.Arrays$ArrayList which is an immutable list. You cannot add to it and you cannot remove from it.



2 Comments

  • supriya wrote on 1 April, 2010, 13:57

    i was facing the same problem,”UnsupportedOperationException while removing or adding elements from List.”
    what i did was took the arrays.aslist result in new Arraylist and used addAll method to add in it..then we can perform the add/remove from newly created and populated list.

    //Customer_Orders was converted to list by using Arrays.aslist
    //was giving exception on remove

    (Arrays.asList(customer_Orders)

    //what i did was

    List list1= new ArrayList();
    list1.addAll(Arrays.asList(customer_Orders)) ;

    //perform operation on list1
    list1.remove(j);

    • Nasrin wrote on 22 December, 2011, 1:18

      Thanks, this surly helped me.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Copyright © 2012 ViralPatel.net. All rights reserved.