实际上,初始化的“最佳”方法可能ArrayList是你编写的方法,因为它无需以List任何方式创建新方法:
ArrayList<String> list = new ArrayList<String>();list.add("A");list.add("B");list.add("C");问题是引用该
list实例需要大量输入。
还有其他选择,例如使用实例初始化程序(也称为“双括号初始化”)创建匿名内部类:
ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C");}};但是,我不太喜欢这种方法,因为最终得到的是ArrayList该类的一个子类具有实例初始化程序,并且创建该类只是为了创建一个对象-对我来说似乎有点过头了。
如果接受了针对Project Coin的Collection Literals提案(原定于Java 7中引入,但也不太可能成为Java 8的一部分),那将是一个很好的选择:
List<String> list = ["A", "B", "C"];
不幸的是,它不会在这里为你提供帮助,因为它将初始化一个不可变变量,List而不是一个ArrayList,并且,如果有的话,它尚不可用。



