使用一行中的数组初始化ArrayList

时间:2013-02-07 21:47:18

标签: java arrays list data-structures

我有一个String的数组,我希望能够按照

的方式做一些事情。
String[] arrayOfStrings = {"this", "is", "an", "array", "of", "strings"};
List<String> listOfStrings = new ArrayList<String>( arrayOfStrings );

List<String> listOfStrings = new ArrayList<String>();
listOfStrings.addAll( arrayOfStrings );

我知道如果我的字符串已经存在于集合中,我可以同时执行这两个操作,并且我可以迭代遍历数组并单独添加它们,但那个有点混乱。

有没有办法用数组初始化List(或任何集合)?

5 个答案:

答案 0 :(得分:10)

您可以使用Arrays.asList方法,该方法需要var-args,并返回由数组支持的固定大小的List。因此,您无法在此列表中添加任何元素。此外,对List元素所做的任何修改都会反映在array中。

String[] arrayOfStrings = {"this", "is", "an", "array", "of", "strings"};
List<String> list = Arrays.asList(arrayOfStrings);

或: -

List<String> list = Arrays.asList("this", "is", "an", "array", "of", "strings");

如果要增加此列表的大小,则必须在ArrayList构造函数中传递它。

List<String> list = new ArrayList<String>(Arrays.asList(arrayOfStrings));

答案 1 :(得分:3)

您可以使用Arrays.asList()静态方法。

例如:

String[] arrayOfStrings = {"this", "is", "an", "array", "of", "strings"};
List<String> list = Arrays.asList(arrayOfStrings);

请注意,您以这种方式创建“由数组备份”的固定大小列表。如果您希望能够扩展它,则必须采用以下方式:

String[] arrayOfStrings = {"this", "is", "an", "array", "of", "strings"};
List<String> list = new ArrayList<String>(Arrays.asList(arrayOfStrings));

答案 2 :(得分:1)

您可以使用asList()

Arrays.asList(T ... a)           返回由指定数组支持的固定大小的列表。

http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html

答案 3 :(得分:1)

这可能不完全属于你的问题,但可能值得考虑。

List<String> list = Arrays.asList("this", "is", "an", "array", "of", "strings");

答案 4 :(得分:0)

ArrayList<List<String>> arrayStringMega = new ArrayList<List<String>>(Arrays.asList(Arrays.asList("1","2","3"),Arrays.asList("2","3","4")));