赞
踩
1、简单的使用Arrays.asList
final List<Integer> integers = Arrays.asList(1, 3);
但是在初始化后我们需要在添加一个元素
integers.add(8);
我们执行代码,却发现报错了
这是为什么啦,按道理来说这不应该,简单的一个语句怎么会报错啦。
我们就来看下Arrays.asList的源码
可以发现Arrays.asList使用的new ArrayList<>(a);是自己的内部类,而不是我们平常使用的java.utils中的ArrayList类。这个内部类没有重写add方法,所以我们在使用add方法时提示 UnsupportedOperationException错误。
其实在阿里巴巴的开发手册中是有针对这个给出说明的
ArrayList中subList的坑
注意事项
1、修改原集合的值,会影响子集合值
2、修改原集合的结构,影响子集合
3、修改子集合的值,会影响原集合值
4、修改子集合的结构,影响原集合
public static void main(String[] args) {
ArrayList<String> strList = new ArrayList<>();
strList.add("12333") ;
strList.add("ceshi") ;
strList.add("hello world") ;
strList.add("快了") ;
strList.add("厉害") ;
System.out.println(strList);
List<String> subs = strList.subList(1, 4);
System.out.println(subs);
strList.set(3,"books");
System.out.println(strList);
System.out.println(subs);
}
修改原集合的结构(添加元素)
strList.add("books");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。