ArrayList和LinkedList在中间开始插入的快慢比较

本文通过实验对比ArrayList和LinkedList在中间插入数据时的速度差异。结果表明,插入位置的选择对LinkedList性能影响显著,当插入位置较远时,LinkedList由于需要移动指针而耗时较长。相比之下,ArrayList能直接通过下标定位,对于查询操作更为高效。因此,ArrayList适合查询操作,而LinkedList在增删操作中更具优势。
摘要由CSDN通过智能技术生成

首先创建带数据的两个List, 然后在中间插入数据, 观察完成时间

public class Hero {
        public static void main(String[] args){
            listAndLink();
        }
                public static void listAndLink(){
            List<String> list = new ArrayList<String>();
            LinkedList<String> link = new LinkedList<String>();
            //生产数据
            for(int i = 0; i < 100000; i ++){
                list.add("dfghdffdhghdfghdfghians"+i);
                link.add("dfghdffdhghdfghdfghians"+i);
            }
            //标记开始时间
            long startlist = System.currentTimeMillis();
            //在list中间插入数据
            for(int i = 0; i < 10000; i ++){
                list.add((5000+i), "asdfasdfaasdf");
          
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ArrayListLinkedList都是常用的Java集合类,它们都可以用于存储一组对象,并提供了一些常用的操作方法。但是,它们的底层实现方式不同,因此在插入和查找方面会有一些差异。 对于ArrayList插入和查找的大体过程如下: 插入:在指定的索引位置插入一个元素时,需要将该位置及其后面的元素向后移动一个位置,然后将新元素插入到指定的位置上。如果要在末尾添加元素,只需要将新元素添加到ArrayList的末尾即可。 查找:通过索引查找元素时,ArrayList会根据索引直接计算出该元素在数组中的位置,然后返回该位置上的元素。 而对于LinkedList插入和查找的大体过程如下: 插入:在指定的位置插入一个元素时,需要将该位置前面的元素和后面的元素连接起来,然后将新元素插入到指定的位置上。如果要在末尾添加元素,只需要将新元素添加到LinkedList的末尾即可。 查找:通过索引查找元素时,LinkedList需要从头开始遍历链表,直到找到指定位置上的元素。因此,LinkedList在查找方面的效率要比ArrayList低一些。 需要注意的是,对于大多数情况下,ArrayListLinkedList更适合进行插入和查找操作,因为ArrayList在内存中是连续的存储空间,可以更好地利用CPU缓存,从而提高访问效率。而LinkedList则更适合进行插入和删除操作,因为它在插入和删除时只需要修改相邻元素的指针,不需要移动其他元素,因此效率更高。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值