我有一个字符串数组,我希望能够按照
String[] arrayOfStrings = {"this", "is", "an", "array", "of", "strings"};
List<String> listOfStrings = new ArrayList<String>( arrayOfStrings );
或
List<String> listOfStrings = new ArrayList<String>();
listOfStrings.addAll( arrayOfStrings );
我知道如果我的字符串已经在一个集合中,我可以同时做这两件事,而且我可以遍历数组并单独添加它们,但这一件有点混乱。
有没有办法用数组初始化列表
(或任何相关集合)?
您可以使用asList()
数组。asList(T…a)返回由指定数组支持的固定大小的列表。
http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html
你可以使用数组。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));
您可以使用一个rrays.asList方法,它接受一个var-args,并返回一个由数组支持的固定大小的List。因此,您不能在此列表中添加任何元素。此外,对List
元素所做的任何修改都将反映在数组
中。
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));
问题内容: 我知道您可以在实例化期间初始化数组,如下所示: 有没有办法用ArrayList做同样的事情?还是我必须单独添加内容? 问题答案: Arrays.asList可以在这里提供帮助:
我想为测试目的创建一个选项列表。起初,我是这样做的: 然后,我重构代码如下: 有更好的方法吗?
问题内容: 我知道当我初始化一个char数组时: 要么 为什么不喜欢 初始化数组: 为什么它们不同?它是Java哲学的本质之一还是其背后的某些原因? 问题答案: 如果您曾经使用过 C ,那么答案就非常简单。在 C语言中 ,创建数组的方式是在堆栈上分配一个足以容纳元素数量的静态内存长度,并使用指针指向第一个元素-或堆上动态内存长度,然后用指针指向第一个元素。 在 C ++中 ,第二个版本已更改为
为什么我可以初始化ArrayList,如下所示: 但在使用时出错:
问题内容: 我想创建用于测试目的的选项列表。首先,我这样做: 然后,我将代码重构如下: 有一个更好的方法吗? 问题答案: 实际上,初始化的“最佳”方法可能ArrayList是你编写的方法,因为它无需以List任何方式创建新方法: 问题是引用该实例需要大量输入。 还有其他选择,例如使用实例初始化程序(也称为“双括号初始化”)创建匿名内部类: 但是,我不太喜欢这种方法,因为最终得到的是ArrayLis