我如何初始化一个集合并在同一行添加数据?
这个问题在这里已经有了答案:
如果你需要一个只读 List
List<String> numbers = Arrays.asList("one","two","three");
// Can't add since the list is immutable
numbers.add("four"); // java.lang.UnsupportedOperationException
如果您想稍后修改 List
。
List<String> numbers2 = new ArrayList<String>(
Arrays.asList("one","two","three"));
numbers2.add("four");
System.out.println(numbers2); // [one, two, three, four]
我更喜欢使用Guava(以前称为Google Collections)库来完成这项工作,这既省去了再次写入类型的需要,而且可以用各种方式直接添加数据。
示例: List<YourClass> yourList = Lists.newArrayList();
或者添加数据: List<YourClass> yourList = Lists.newArrayList(yourClass1, yourclass2);
所有其他类型的集合及其各种实现也是如此。 另一个例子: Set<String> treeSet = Sets.newTreeSet();
你可以在https://code.google.com/p/guava-libraries/找到它。
你可以使用Arrays.asList(T... a)
List<String> foo = Arrays.asList("one","two","three");
正如Boris在评论中提到的那样, List
是不可变的(即只读)。 您需要将其转换为ArrayList
或类似的才能修改集合:
List<String> foo = new ArrayList<String>(Arrays.asList("one","two","three"));
您还可以使用匿名子类和初始化程序创建List
:
List<String> foo = new ArrayList<String>() {
{
add("one");
add("two");
add("three");
}
};
链接地址: http://www.djcxy.com/p/27707.html
上一篇: How can I initialize a collection and add data on the same line?