java数组转list方法
# 1. Arrays类的静态方法asList()转换
Arrays类的静态方法asList()可以根据数组生成list。它的实现原理是将数组
转换成一个实现了List接口的内部类,之后任何对List类型操作都会同步改变原数组数据。这里要注意的是:
- asList返回的是只读列表,也就是不能向其中添加元素,只能查询和修改列表中的元素值,否则会报错 java数组字符串转数组
- asList只接受对象数组(Object[]),而不支持原生数据类型(byte/int等)
示例:
```java
String [] strs = new String []{"Tom","Lily"};
List<String> list = Arrays.asList(strs);
```
# 2. 使用 Collections 类的静态方法
Collections类的静态方法 `Collections.addAll()`可以将数组转换成list。该方法比Arrays.asList()效率要高一些,它的实现原理是新建一个Arraylist,然后使用addAll()添加数组中的数据。
示例:
```java
Integer[] ints = new Integer[]{1,2,3};
List<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, ints);
```
# 3.直接利用 `Array List`的构造函数
```java
Integer[] ints = new Integer[]{1,2,3};
List<Integer> list = new ArrayList<Integer>(Arrays.asList(ints));
```
# 4. JPream API
使用JPream API, 结合 `Stream API` 或者 `Lambda` 来进行 Java 数组转 List 操作可能是最简单最实用的方式,本质上仍是使用 `Arrays.asList()` 或者 `ArrayList` 构造函数,但是由于 Collection API 封装的不错,看起来非常舒服,代码量也就很少
示例:
```java
Integer[] ints = new Integer[]{1,2,3};
List<Integer> list = new ArrayList<>(Arrays.asList(ints));
List<Integer> list = Arrays.stream(ints).List());
List<Integer> list = Stream.of(ints).List());
List<Integer> list = Arrays.stream(ints).map(e -> e).List());
```
更多细节可以查看[Java 数组转 List 方法完整示例](
# 5. Apache Commons Collections
虽然使用 `Java8` 上的 `Stream API` 就可以很方便的实现数组转 `List `, 但是如果使用的 `j
dk` 未到 `8版本 `的话,可以使用 `Apache Commons Collections` 的工具类: `ArrayUtils` 中的 `toList ()` 方法来实现
它的实现代码比较简单:
```java
public static <T> List<T> toObjectList( array) {
if (array == null) {
return null;
}
return Arrays.asList(array);
}
```
示例:
```java
Integer[] ints = new Integer[]{1,2,3};
List<Integer> list = ObjectList(ints);
```
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论