两个arraylist合并_每天都在用ArrayList,你会用AbstractList吗

为什么有时候要避免使用ArrayList

在工程中,经常能看到类似如下代码:

final List list1 = ...;

final List list2 = ...;final List results = new ArrayList<>(list1.size() + list2.size());

results.addAll(list1);

results.addAll(list2);

return results;

其功能非常简单,将两个list合并成一个list,而完成这个功能非常简单,就是使用一个ArrayList,将两个list中的元素全部加入到这个list中。

但是这样做的问题在于以下两点:

1. 时间开销大,需要将两个list中的元素全部加入到新的list中

2. 需要创建额外的数组空间,甚至在加入第二个list时,ArrayList需要扩容

可以看到ArrayList中的代码:

ff6a4878e6aca0eab34c46a9a0f65aec.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值