以有效方式做到这一点的“最佳”方法是:
List<MyClass> list = new ArrayList<MyClass>();
list.add(new MyClass("name", "address", 23));
list.add(new MyClass("name2", "address2", 45));
虽然它需要大量的打字,但你可以清楚地看到这更有效
另一种选择是使用谷歌番石榴(未测试效率):
ArrayList<MyClass> list = new ArrayList<MyClass>(
new MyClass("name", "address", 23),
new MyClass("name2", "address2", 45) );
所需的导入是import static com.google.common.collect.Lists.newArrayList;
此外,您可以使用 @Rohit Jain 最初提出的双括号初始化:-
List<MyClass> list = new ArrayList<MyClass>() {
{
add(new MyClass("name", "address", 23));
add(new MyClass("name2", "address2", 45));
}
};
如您所见,inner braces
就像一个initializer
块,用于list
一次性初始化..
注意你末尾的分号double-braces
另请注意,最后一种方法有一些缺点,如这里所讨论的。