139

可能重复:
在 Java 中将数组分配给 ArrayList

我需要将 a 转换String[]为 anArrayList<String>但我不知道如何

File dir = new File(Environment.getExternalStorageDirectory() + "/dir/");
String[] filesOrig = dir.list();

基本上我想filesOrig变成一个ArrayList.

4

6 回答 6

357

您可以执行以下操作:

String [] strings = new String [] {"1", "2" };
List<String> stringList = new ArrayList<String>(Arrays.asList(strings)); //new ArrayList is only needed if you absolutely need an ArrayList
于 2012-04-19T15:05:18.443 回答
39

像这样 :

String[] words = {"000", "aaa", "bbb", "ccc", "ddd"};
List<String> wordList = new ArrayList<String>(Arrays.asList(words));

或者

List myList = new ArrayList();
String[] words = {"000", "aaa", "bbb", "ccc", "ddd"};
Collections.addAll(myList, words);
于 2012-04-19T15:03:44.980 回答
19
List<String> list = Arrays.asList(array);

返回的列表将由数组支持,它就像一座桥梁,因此它是固定大小的。

于 2012-04-19T15:03:45.960 回答
9
List myList = new ArrayList();
Collections.addAll(myList, filesOrig); 
于 2012-04-19T15:03:53.490 回答
7

您可以循环所有数组并添加到 ArrayList 中:

ArrayList<String> files = new ArrayList<String>(filesOrig.length);
for(String file: filesOrig) {
    files.add(file);
}

或者Arrays.asList(T... a)按照发表的评论使用。

于 2012-04-19T15:02:27.327 回答
2

你可以做类似的事情

MyClass[] arr = myList.toArray(new MyClass[myList.size()]);

于 2012-04-19T15:04:09.987 回答