网上一直不缺乏介绍 Array与List之间转换方法介绍的文章, 最近找了几篇看了一下,并结合工作实际遇到问题,发现几乎全部的文章都没有说清各种用法的 先决条件
比如 一个朋友说有三种办法:
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public classStringArrayTest
{
publicstatic void main(String[] args)
{
String[] words = {"ace","boom", "crew","dog", "eon"};
List<String> wordList = Arrays.asList(words);
for(String e : wordList)
{
System.out.println(e);
}
}
}
2. [代码]比较傻的做法
String[] words = { ... };
List<String> list = newArrayList<String>(words.length);
for (String s : words) {
list.add(s);
}
3. [代码]这方法也还可以
import java.util.Collections;
List myList = newArrayList();
String[] myStringArray = newString[] {"Java","is", "Cool"};
Collections.addAll(myList, myStringArray);
其中方法1 和方法3 都只是针对 引用类型的 Array 的 基础数据类型的 Array 将不会自动转换, 会以原有的类型转换为一个list.
只有方法2 也是最原始的 是支持所以数组类型的。
比如:
int[] showItems = {1, 2, 3, 4};
List<int[]> list= new ArrayList<int[]>(Arrays.asList(showItems));
List<int[]> list = new ArrayList<int[]>();
Collections.addAll(list, showItems);