<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kooyee ‘s blog

    開源軟件, 眾人努力的結晶, 全人類的共同財富
    posts - 103, comments - 55, trackbacks - 0, articles - 66
       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    常常使用Arrays.asLisvt()后調用add,remove這些method時出現java.lang.UnsupportedOperationException異常。這是由于:

    Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是繼承AbstractList,remove,add等method在AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(int),add(int)等,所以throw UnsupportedOperationException。

    解決方法是使用Iterator,或者轉換為ArrayList
    List list = Arrays.asList(a[]);
    List arrayList 
    = new ArrayList(list);


    參考

    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.

    If you want a mutable list built from your array you will have to loop over the array yourself and add each element into the list in turn.

    Even then your code won't work because you'll get an IndexOutOfBoundsException as you remove the elements from the list in the for loop. There are two options: use an Iterator which allows you to remove from the list as you iterate over it (my recommendation as it makes the code easier to maintain) or loop backwards over the loop removing from the last one downwards (harder to read).

    You are using AbstractList. ArrayList and Arrays$ArrayList are both types of AbstractList. That's why you get UnsupportedOperationException: Arrays$ArrayList does not override remove(int) so the method is called on the superclass, AbstractList, which is what is throwing the exception because this method is not implemented on that class (the reason being to allow you to build immutable subclasses).


    評論

    # re: 『Java』java.lang.UnsupportedOperationException at java.util.AbstractLis[未登錄]  回復  更多評論   

    2009-08-15 11:12 by 哈哈
    講解方法很經精確
    喜歡這種講解風格

    # re: 『Java』java.lang.UnsupportedOperationException at java.util.AbstractLis  回復  更多評論   

    2009-09-03 10:02 by javaisgod
    good

    # re: 『Java』java.lang.UnsupportedOperationException at java.util.AbstractLis  回復  更多評論   

    2009-09-09 11:55 by kellyzly
    頂,我的問題解決了,謝謝

    # re: 『Java』java.lang.UnsupportedOperationException at java.util.AbstractLis  回復  更多評論   

    2010-08-18 17:22 by 冬天雞雞好冷
    api 的設計多此一舉還搞個內部類
    主站蜘蛛池模板: 十九岁在线观看免费完整版电影| 99在线视频免费观看| 成年人网站免费视频| 内射少妇36P亚洲区| 久别的草原电视剧免费观看| 亚洲国产精品高清久久久| A毛片毛片看免费| 亚洲av无码一区二区乱子伦as| 在线人成免费视频69国产| 亚洲成A人片在线观看无码不卡| 在线观看免费黄色网址| 亚洲AV日韩AV永久无码绿巨人| 日韩av无码久久精品免费| 亚洲国产精品综合久久网各| 亚色九九九全国免费视频| 亚洲日韩AV一区二区三区四区| 女人18毛片特级一级免费视频| 精品国产亚洲一区二区三区在线观看| 国产一区二区三区免费看| 一区二区在线免费视频| 亚洲av色影在线| 免免费国产AAAAA片| 亚洲AV噜噜一区二区三区 | 亚洲最大中文字幕无码网站| 夭天干天天做天天免费看| 美女被免费网站视频在线| 中文字幕第一页亚洲| 2021国内精品久久久久精免费| 国产精品亚洲精品青青青| 日韩亚洲精品福利| 久久精品一区二区免费看| 亚洲www77777| 亚洲午夜国产精品无码老牛影视| 97在线视频免费公开观看| 亚洲av无码成人精品区一本二本| 亚洲精品成人区在线观看| 亚洲电影免费观看| 免费很黄无遮挡的视频毛片| 亚洲好看的理论片电影| 国产精品冒白浆免费视频| 无码中文字幕av免费放dvd|