Arrays.asList() vs Collections.singletonList()
2022-08-31 06:59:29
使用Arrays.asList(something)而不是Collections.singletonList(something)来制作包含一个项目的列表是否有优势(或很大的区别)?后者也使返回的列表不可变。
使用Arrays.asList(something)而不是Collections.singletonList(something)来制作包含一个项目的列表是否有优势(或很大的区别)?后者也使返回的列表不可变。
Collections.singletonList(something)
是不可变的,而 是数组的固定大小表示形式,其中列表和数组在堆中联接。Arrays.asList(something)
List
Arrays.asList(something)
允许对它进行非结构更改,这些更改将同时反映在 List 和连体数组中。它抛出不受支持的操作Exception
来添加,删除元素,尽管您可以为特定索引设置元素。
对 返回的列表所做的任何更改都将导致“不支持的操作异常
”。Collections.singletonList(something)
此外,返回的 List 的容量将始终为 1,这与其容量为支持的阵列的大小不同。Collections.singletonList(something)
Arrays.asList(something)
我只想补充一点,单例列表没有数组的支持,只有对该项的引用。据推测,它将占用更少的内存,并且可能很重要,具体取决于要创建的列表的数量。