You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向HashSet中添加数组元素的高效方法对比

两种HashSet添加元素方式的效率对比

你的判断完全正确,Collections.addAll(myHashSet, myString.split(":"))确实比myHashSet.addAll(List.of(myString.split(":")))更高效,具体差异如下:

  • 两者的初始开销一致:myString.split(":")都会生成一个String[]数组,这部分的执行成本是相同的。
  • 第一种方式的执行链路:Collections.addAll会直接遍历上述数组,逐个调用HashSet的add方法,没有任何额外的中间对象创建,操作逻辑最直接。
  • 第二种方式的额外开销:List.of(myString.split(":"))会创建一个不可变的包装列表对象(哪怕是轻量级实现,也确实是额外生成的对象),之后HashSet.addAll需要遍历这个列表再完成元素添加,多了一层中间对象的创建和间接遍历的成本。

虽然JVM可能会对第二种方式做部分优化,但从代码的本质执行逻辑来看,第一种方式的开销确实更低,效率更高。

内容的提问来源于stack exchange,提问作者Rohit Singhal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:54:58