标签:数组转list java数组转list 代码缺陷 arrays.aslist java代码缺陷数组转list
以上为开发过程中,部分程序猿数组转list的“笨”方法,为什么说笨呢,因为这样做代码很繁琐不简练容易出错可读性叫差,而且还比较耗时,因为我要一个一个遍历数组,然后把这个元素添加到list中(不过以上代码还有几点,最好给ArrayList<String>指定一个初始容量,注意和LinkedList的区别,以及split方法使用的效率和可能内存泄漏问题,此文不再详述,此处重点解读数组转list)。
其实JDK特意为这种情况准备了一个方法,那就是java.util包中的Arrays.asList方法,如下:
一行代码即可解决数组转list的问题,可读性高而且不易出错,而且asList方法底层是将数组的引种直接付给的一个私有内部类Arrays.ArrayList的里的数组了,效率相对一个一个对应的添加引用变量更高一些。
不过asList得的list的大小固定,可以说是“参数数组的视图”,其实返回的ArrayList类型为Arrays的私有内部类,它并没有对应的add或者remove方法,所以不能进行元素的增加或者删除否则会报异常,一般这种list用于Dao层方法的传参,如果想得到一个可以增加或者删除的list,可以new ArrayList(Arrays.asList(数组))即可,其详细使用及注意事项请参考我的博文:Array.asList:数组转list时你一定要知道的“陷阱”!
补充:
如果是如Arrays.asList(ids.split(","))将一个字符串以指定的分隔符(或者分割字符串或者正则表达式或者其他)拆分数组再转List的话,还有一个也比较直接简便的方法,就是利用google的工具类库Guava里的splitter.on(",").splitToList(字符串)来实现,不过这个方法得到的也是大小不可变的list。
标签:数组转list java数组转list 代码缺陷 arrays.aslist java代码缺陷数组转list
原文地址:http://blog.csdn.net/chenleixing/article/details/44499263