List集合增删元素时,UnsupportedOperationException报错问题

我的情况是这样:从数组转集合,操作集合删除元素。

// Tab页面标题
第一步:String[] mTitles = getResources().getStringArray(R.array.leads_details_tab);
第二步:List<String> titles= Arrays.asList(mTitles);
.
.
.
第三步:titles.remove(1);-------->异常:java.lang.UnsupportedOperationException

分析报错原因:
第二步中
Arrays.asList(mTitles)生成的ArrayList与我们正常增删操作的ArrayList不是同一个。
1.正常增删操作的ArrayList是java.util下的ArrayList类,内部封装了增删的逻辑。

2.Arrays.asList(mTitles)生成的ArrayList,是java.util下的Arrays类中的内部类ArrayList。该内部类中没有封装增删的方法,所有我们看它的父类AbstractList,
AbstractList类中封装的增删方法是下面的样子:
          

                       

从上面AbstractList类中封装的增删方法就能发现我们为什么会报UnsupportedOperationException异常了。


 






 

posted on 2018-08-29 15:55  EthanDong  阅读(328)  评论(0编辑  收藏  举报

导航