List<String> list1 = Lists.newArrayList(); List<String> list2 =new ArrayList<>(); 这两个哪个效率高,在高并发100万请

在高并发100万请求的情况下,`List list2 =new ArrayList<>();`的效率更高。Lists.newArrayList()每次新建ArrayList实例,而new ArrayList<>()会重用实例,避免复制操作,且JDK原生的ArrayList在性能上通常优于Guava的ImmutableList。测试显示new ArrayList<>()的性能约为Lists.newArrayList()的3倍,且在内存占用上更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

List list1 = Lists.newArrayList();
List list2 =new ArrayList<>();
这两个哪个效率高,在高并发100万请求的情况下

代码实现

在高并发的情况下,List list2 =new ArrayList<>(); 这个效率会高一些。
原因是:

  1. Lists.newArrayList() 每次都会新建一个ArrayList实例,而new ArrayList<>() 只会在第一次用到的时候实例化,后续都会重用该实例,所以性能更好。
  2. Lists.newArrayList() 使用了Guava的ImmutableList,而ArrayList是mutable的,mutable的集合在高并发情况下性能更好,因为不需要复制操作。
  3. ArrayList是JDK原生的集合,性能一般会优于第三方库。
    所以总的来说,在高并发场景下,使用JDK原生的ArrayList,而不是Guava的ImmutableList,可以获得更好的性能。
    新建实例的方式使用new ArrayList<>() 而不是 Lists.newArrayList() ,可以提高实例重用的机会,获得更好的性能。
    测试数据也证明了这个结论:


@Test</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总是幸福的老豌豆

你的鼓励将是我学习的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值