Ale*_*per 16 java collections arraylist
以这种方式通过对象数组初始化列表是很常见的:
Foo[] objs = ...;
ArrayList<Foo> list = new ArrayList<Foo>(Arrays.asList(objs));
Run Code Online (Sandbox Code Playgroud)
我想知道,有没有理由为什么ArrayList的desiner没有包含带数组作为参数的构造函数,所以它可以像这样初始化:
ArrayList<Foo> list = new ArrayList<Foo>(objs);
Run Code Online (Sandbox Code Playgroud)
可能是它违反了一些原则,线程安全或其他什么?
Jon*_*eet 11
我不知道为什么它不在标准库中,但是Guava的Lists类newArrayList甚至可以帮助进行类型推断:
ArrayList<Foo> list = Lists.newArrayList(objs);
Run Code Online (Sandbox Code Playgroud)
(Lists.newArrayList如果你经常使用它,你可能想静态导入.)
您可以使用Google Guava Library(AKA Google Collections):
String[] ary = {"a", "b"};
List<String> l = Lists.newArrayList(ary);
Run Code Online (Sandbox Code Playgroud)
http://code.google.com/p/guava-libraries/
| 归档时间: |
|
| 查看次数: |
6391 次 |
| 最近记录: |