banner
NEWS LETTER

Java的Array和List之间的转换

Scroll down

List2Array

使用for循环

1
2
3
4
5
6
List<String> list = new ArrayList<>(Arrays.asList("aa","bb","cc"));
String [] array = new String[list.size()];

for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}

使用toArray方法

1
2
List<String> list = new ArrayList<>(Arrays.asList("aa","bb","cc"));
String [] array = list.toArray(new String[0]);
  • 传入的参数new String[0]仅用于传递array参数类型是什么,因此长度可以为0
  • 如果不传入参数,则转化后的array类型为Object[]

Array2List

使用for方法

1
2
3
4
5
6
String [] array = new String[]{"aa","bb","cc"};
List<String> list = new ArrayList<>();

for (int i = 0; i < array.length; i++) {
list.add(array[i]);
}

使用asList方法

1
2
 String [] array = new String[]{"aa","bb","cc"};
List<String> list = new ArrayList<>(Arrays.asList(array));
  • 需要注意Arrays.asList返回的list是大小固定的,是定义在java.util.Arrays中的一个私有静态类,不同于常用的java.util.ArrayList

  • 阅读其源码发现该私有静态类并并没有addremove方法,因此不支持增删元素,只支持getset改查元素

使用Collections.addAll方法

1
2
3
String [] array = new String[]{"aa","bb","cc"};
List<String> list = new ArrayList<String>(array.length);
Collections.addAll(list,array);