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

前言

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
public void testConcurrentArrayList(

猜你喜欢

转载自blog.csdn.net/qq_32370913/article/details/130505231
今日推荐