首页 > 技术文章 > 82 subList()方法于asList()的細節以及UnsupportedOperationException

Scorpicat 2020-01-07 17:11 原文

List中的subLIst()方法可以截取父数组中指定下标范围形成一个新的数组。但注意这个新数组代表的是父数组的一部分,改变它就会改变父数组中的对应部分。

 

 

Arrays中的asList()方法需要注意的地方:它并不是将数组转化为一个List对象,而是以List的方式对数组进行操作。也就是说,通过这个方法得到的list,本质上也是这个数组本身,而数组是定长的,所以这个list不能做增删操作,否则会报UnsupportedOperationException

 

如果需要将数组转为一个船新的集合List引用:

  1. 先将数组调用asList得到一个集合:List list1 = 数组.asList();
  2. 然后声明一个新的集合 List list2 = new ArrayList();
  3. 然后list2.addAll(list1);//将集合1中的元素添加到集合2中

  1. 先将数组调用asList得到一个集合:List list1 = 数组.asList();
  2. 然后声明一个新的集合 List list2 = new ArrayList(list1);//丢list1进去即可

 

 

推荐阅读