3

我有一个Strings 数组,我希望能够按照以下方式做一些事情

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用数组初始化一个(或任何集合)?

4

5 回答 5

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));
于 2013-02-07T21:49:15.387 回答
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));
于 2013-02-07T21:49:04.133 回答
1

您可以使用 asList()

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

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

于 2013-02-07T21:49:27.207 回答
1

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

List<String> list = Arrays.asList("this", "is", "an", "array", "of", "strings");
于 2013-02-07T21:53:30.167 回答
0

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

于 2020-10-05T20:23:11.167 回答