java小技巧(三):List和Array之间的转换
“java常见小错误”系列文章推荐:
上一篇:java小技巧(二):JAVA 交集,差集,并集
前文推荐:java常见小错误(一):变量类型自动转换与强制转换
java小技巧(一):进制转换
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:java小技巧(三):List和Array之间的转换;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
一、Array 转为List
- 方式一:使用for循环把数组元素加进list;
- 方式二:Arrays.asList(T… a),将数组转换List后,不能对List增删,只能查改,否则抛异常。
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.darwin.junit.Calculator.testArrayCastToList(Calculator.java:19)
at com.darwin.junit.Calculator.main(Calculator.java:44)
注意点:
1)Arrays.asList()方法返回的对象是Arrays的内部类,对list的操作仍然反映在原数组上,因此这个list是定长的,不支持add、remove操作;Arrays.asList(strArray)返回值是java.util.Arrays类中一个私有静态内部。java.util.Arrays.ArrayList,它并非java.util.ArrayList类。java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不具有添加add()或删除remove()方法,所以调用add()方法会报错。
2)由于asList方法接受的泛型参数,因此不能用于基本类型,只能使用方法一;
- 方式三:通过ArrayList的构造器,将Arrays.asList(strArray)的返回值由java.util.Arrays.ArrayList转为java.util.ArrayList。
private void testArrayCastToListRight()