最近在研究 Flutter 的 pigeon 例子 的时候,发现如下实例代码:
对其中的 Collections.singletonList(result) 比较感兴趣,研究了一下,发现还是比较有意义的。
Collections.singletonList()
这个方法主要用于只有一个元素的优化,减少内存分配,无需分配额外的内存,可以从SingletonList内部类看得出来,由于只有一个element,因此可以做到内存分配最小化,相比之下ArrayList的DEFAULT_CAPACITY=10个。
下面是SingletonList静态类的定义
上面的源码中可以看到,静态类中并没有重新add、delete、set等方法。所以通过Collections.singletonList初始化的List是不能执行上述方法的。
Collections.emptyList()
Collections.emptyList在日常开发中也比较常用,如果一个方法需要返回一个空List,并且后续不用再新增元素进去,我们完全可以直接返回Collections.emptyList()而不是new ArrayList;这样不用每次都去创建一个新对象。
EMPTY_LIST如下
Collections中其他类似方法