Java中关于Arrays.asList()的操作
2013-11-24 16:16
375 查看
我们可以通过Arrays.asList() 产生一个List,但是要记住,我们通过Arrays.asList产生的list是基于一个固定大小的数组的, 仅支持那些不会改变数组大小的操作。所以我们在使用时要时刻记住,以免出现不可预料的错误。
如果我们想要得到一个可以操作的List可以通过将Arrays.asList获得的list作为构造器的参数传进ArrayList中,或者通过使用addAll方法添加进去,即可。
示例:
如果我们想要得到一个可以操作的List可以通过将Arrays.asList获得的list作为构造器的参数传进ArrayList中,或者通过使用addAll方法添加进去,即可。
示例:
import java.util.AbstractList; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; public class Test{ public static void test(String msg, List<String> list){ Collection<String> c = list; Collection<String> sublist = list.subList(1, 3); Collection<String> c2 = new ArrayList<String>(sublist); System.out.println("------" + msg + "--------"); try{ c.removeAll(c2); }catch(Exception e) { System.out.println("removeAll : " + e); } try{ c.retainAll(c2); }catch(Exception e) { System.out.println("retainAll : " + e); } try{ c.clear(); }catch(Exception e) { System.out.println("clear : " + e); } try{ c.add("XXX"); }catch(Exception e) { System.out.println("add : " + e); } try{ c.addAll(c2); }catch(Exception e) { System.out.println("addAll : " + e); } try{ c.remove("X"); }catch(Exception e) { System.out.println("remove : " + e); } try{ list.set(0, "XYZ"); }catch(Exception e) { System.out.println("list.set : " + e); } } public static void main(String[] args) { List<String> list = Arrays.asList("A B C D E F G H B I HIK HKI GG".split(" ")); test("Modifiable1", new ArrayList<String>(list)); List<String> list2 = new ArrayList<String>(); list2.addAll(list); test("Modifiable2", list2); Collections.addAll(list2, "A B C D E F G H B I HIK HKI GG".split(" ")); test("Modifiable3", list2); test("Arrays.asList", list); test("unmodifiableList()", Collections.unmodifiableList(list)); } } 输出: ------Modifiable1-------- ------Modifiable2-------- ------Modifiable3-------- ------Arrays.asList-------- removeAll : java.lang.UnsupportedOperationException retainAll : java.lang.UnsupportedOperationException clear : java.lang.UnsupportedOperationException add : java.lang.UnsupportedOperationException addAll : java.lang.UnsupportedOperationException ------unmodifiableList()-------- removeAll : java.lang.UnsupportedOperationException retainAll : java.lang.UnsupportedOperationException clear : java.lang.UnsupportedOperationException add : java.lang.UnsupportedOperationException addAll : java.lang.UnsupportedOperationException remove : java.lang.UnsupportedOperationException list.set : java.lang.UnsupportedOperationException
相关文章推荐
- Arrays.asList的到的List进行remove操作报java.lang.UnsupportedOperationException
- Java 关于使用Arrays.asList()数组转集合的问题
- 关于Arrays.asList()报java.lang.UnsupportedOperationException异常分析
- Java中关于Arrays.asList方法的深入学习与理解
- Java中关于Arrays.asList方法的深入学习与理解
- 关于 Arrays.asList add、remove 操作的 UnsupportedOperationException
- java——Arrays.asList()方法
- java Arrays.asList 问题
- 【Java集合的详细研究2】浅谈Arrays.asList的使用
- Java中Arrays.asList()
- Java中Arrays.asList()方法详解及实例
- java Arrays.asList()源码剖析
- java Arrays.asList的用法
- java Arrays.asList com.google.common.collect.Lists.newArrayList 效率问题
- java Arrays.asList的用法
- 【java】Arrays.asList、Arrays.copyOfRange
- Arrays.asList返回的有限操作的List
- Java 编程思想(第4版)学习笔记(第11章 练习2 练习3 Arrays.asList() Colections.addAll())
- 关于Arrays.asList的问题
- 为什么Java里的Arrays.asList不能用add和remove方法?