数组转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。

循环体中用“+”拼接字符串-代码典型缺陷分析(二)

转载请注明—作者:Java我人生(陈磊兴)原文出处:http://blog.csdn.net/chenleixing/article/details/44499263

欢迎关注我的博客,敬请关注代码典型缺陷分析系列下一篇!

如果过程中有讲解的不合理或者不对或者你有更好的想法,还望大牛们留下你们的宝贵文字,以便你、我、大家更好的学习与进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值