Java中List.remove報UnsupportedOperationException異常


今天項目中有個需求場景:

A和B都是List,而B是A的子集,現在想求A和B的差集。

想到了List中提供的removeAll()方法可以求得差集,但是結果確報了UnsupportedOperationException異常。

仔細分析了下,List A我是通過數組經過Arrays.asList()轉化成List,但是它是繼承AbstractList的子類,而AbstractList是不支持removeAll()和remove()操作的。

如果要執行remove()和removeAll()操作,可以轉化成Set()或者ArrayList、LinkedList才可以。

因為我的需求List A中的元素要保證唯一,所以我在數組轉化成List之后又轉化成了Set,之后就沒問題了。

 1 Set<String> setA = new HashSet<String>(Arrays.asList(arrA)); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM