通过对象数组初始化列表是很常见的:
Foo[] objs = ...;
ArrayList<Foo> list = new ArrayList<Foo>(Arrays.asList(objs));
我想知道,ArrayList 的设计者是否有任何原因不包含以数组作为参数的构造函数,以便可以像这样初始化它:
ArrayList<Foo> list = new ArrayList<Foo>(objs);
可能它违反了一些原则,线程安全或其他什么?
我不知道为什么它不在标准库中,但是Guava http://guava-libraries.googlecode.com's Lists http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Lists.html班级有newArrayList
这甚至有助于类型推断:
ArrayList<Foo> list = Lists.newArrayList(objs);
(您可能想要导入Lists.newArrayList
如果你经常使用它,则静态地使用它。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)