Arrays.asList()这个方法是将数组转成List.但是没有add remove 方法.看此方法源码:
public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {........}
返回ArrayList是继承自AbstractList同时实现
了RandomAccess和Serializable接口AbstractList add方法的定义.
public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {........}
执行结果:public class aArrays { public static void main(String[] args) { List<Integer> list= Arrays.asList(2,9); System.out.println("listtoString:"+list.toString()); System.out.println("listsize():"+list.size()); list.add(4); System.out.println("------------list add------------"); System.out.println("listtoString:"+list.toString()); System.out.println("listsize()1:"+list.size()); } }
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at com.imooc.repository.aArrays.main(aArrays.java:19) listtoString:[2, 9] listsize():2 异常代码行com.imooc.repository.aArrays.main(aArrays.java:19)list.add(4);抛出了异常. .
基本类型数组不能作为asList的输入参数..
执行结果:int [] ints= {1,2,3,4}; List list= Arrays.asList(ints); System.out.println("listtoString:"+list.toString()); System.out.println("listsize():"+list.size());
listtoString:[[I@723279cf] listsize():1整个数组作为一个元素 存进去的.如果要使用请使用包装类型
Array.aslist 使用.
最新推荐文章于 2024-05-10 21:04:32 发布