我一直在使用guava的集合实用程序来创建一个列表:
List<Integer> foo = Lists.newArrayList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
最近我找到了原语实用程序,它允许:
List<Integer> bar = Ints.asList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
foo.set(0, 100);
bar.set(0, 100);
Run Code Online (Sandbox Code Playgroud)
那么对于像int这样的原始类型,两者之间有什么区别(如果有的话)?
基元不适用于泛型.这个
List<Integer> foo = Lists.newArrayList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
会产生装箱每个int价值的成本,并将整个东西包装Integer[]成传递给newArrayList.在List返回的不是固定的大小.
这个
List<Integer> bar = Ints.asList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
只会产生将三个参数包装int[]成参数类型的成本.在List返回的固定大小
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |