数组与list之间的相互转换
2015-12-29 11:24
197 查看
细节还是习惯性的记录下来吧,不然每次都去查API挺耗时间的!!
一、数组转成list
第一种方式:
第二种方式:
注意:Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作。
例如:接上面 list.add("4"); 运行时则会报异常:java.lang.UnsupportedOperationException
如果想对上述转换后的list再进行add等操作,可以如下:
第三种方式(中规中矩的操作,不推荐):
循环数组,把每个元素添加到list中!!!
二、List 转数组
第一种方式:
注意:用list.toArray()方法返回的是个Object类型的数组,很多人在这里想要得到一个String[]型的数组,就直接像这样强转了:
String[] arr = (String[])list.toArray();
这种写法是错误的,没有这样的强制转法,编译时不会报错,但是运行时会报不能转换的异常:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
解决上面的问题有两种方式:
1.循环Object数组,单个转换
2.改为API的实现方法
第二种方式:
循环遍历list,添加到数组!!!
以上----------------------------------------------------
一、数组转成list
第一种方式:
// 初始化数组 String[] arr = new String[] { "1", "2", "3" }; // 待转换成的list List<String> list = new ArrayList<String>(); // 通过Collections转换 Collections.addAll(list, arr);
第二种方式:
// 初始化数组 String[] arr = new String[] { "1", "2", "3" }; // 通过Arrays转换成list List<String> list = Arrays.asList(arr);
注意:Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作。
例如:接上面 list.add("4"); 运行时则会报异常:java.lang.UnsupportedOperationException
如果想对上述转换后的list再进行add等操作,可以如下:
// 通过list构造函数转换成可操作的list(add等) List<String> list = new ArrayList<String>(Arrays.asList(arr));
第三种方式(中规中矩的操作,不推荐):
循环数组,把每个元素添加到list中!!!
二、List 转数组
第一种方式:
// 初始化list List<String> list = new ArrayList<String>(); // 添加数据 list.add("1"); list.add("2"); list.add("3"); // 通过toArray转换 Object[] arr = list.toArray();
注意:用list.toArray()方法返回的是个Object类型的数组,很多人在这里想要得到一个String[]型的数组,就直接像这样强转了:
String[] arr = (String[])list.toArray();
这种写法是错误的,没有这样的强制转法,编译时不会报错,但是运行时会报不能转换的异常:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
解决上面的问题有两种方式:
1.循环Object数组,单个转换
2.改为API的实现方法
// 先定义一个数组 String[] arr = new String[list.size()]; // 然后再通过toArray转换 list.toArray(arr);
第二种方式:
循环遍历list,添加到数组!!!
以上----------------------------------------------------
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- C#动态调整数组大小的方法
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- Linux Shell 数组建立及使用技巧
- PowerShell数组的一些操作技巧
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法
- C#中Ilist与list的区别小结
- C#中IList<T>与List<T>的区别深入解析
- C#对list列表进行随机排序的方法
- Ruby简明教程之数组和Hash介绍
- C语言查找数组里数字重复次数的方法