java - Arrays.asList() 与 Collections.singletonList()

标签 java collections

与 Collections.singletonList(something) 相比,使用 Arrays.asList(something) 来制作包含一个项目的列表是否有优势(或有很大的不同)?后者也使返回的列表不可变。

最佳答案

Collections.singletonList(something)immutableArrays.asList(something) 是固定大小的 List 表示列表和数组在堆中连接的数组。

Arrays.asList(something) 允许对其进行非结构性更改,这会同时反射(reflect)到 List 和联合数组。它会抛出 UnsupportedOperationException 用于添加、删除元素,尽管您可以为特定索引设置元素。

Collections.singletonList(something) 返回的列表所做的任何更改都将导致 UnsupportedOperationException

此外,Collections.singletonList(something) 返回的 List 的容量将始终为 1,这与 Arrays.asList(something) 不同其容量将是支持数组的大小。

关于java - Arrays.asList() 与 Collections.singletonList(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26027396/

相关文章:

java - 多线程环境中缓存集合的无限循环

java - 如何在ConcurrentHashMap中基于getOrDefault()实现原子getOrDefaultWithPut()?

java - 在 map 中存储带有日期的对象组

java - 如何优化 ArrayList<Integer> 中值的更新

java - 如何使用用户名/密码(无证书)通过 https 设置 CXF/SOAP 客户端连接

java - 无法通过java执行docker命令

string - 如何在 Scala 中分割给定位置列表的字符串

java - HashSet顺序及与JDK 7/8的区别

java - 我可以在同一个服务中使用两个存储库吗?

java - 可以将相同的有状态 session bean 实例注入(inject)到多个其他 session bean 中吗?