Guava ImmutableList有一系列重载of()方法.正如在这个解决的问题的上下文中所讨论的那样,存在这些以避免在将varargs与泛型混合时发生的警告.
但除此之外,0和1参数方法都依赖于专门的列表实现.对于2..11参数方法似乎可以做同样的事情,从而减少这些列表的内存消耗 - 沿着
final class ImmutableListWith2Elements<E> extends ImmutableList<E> {
final E e1;
final E e2;
...
Run Code Online (Sandbox Code Playgroud)
相反,它们使用基于数组的实现,这意味着除了内容引用之外,还存储数组对象和对数组的引用.你能帮我理解这里涉及的权衡吗?
你能帮我理解这里涉及的权衡吗?
这是一个权衡:
我的建议:
为了记录,我认为Guava开发人员做对了.
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |