linkedlist是一个双向链表;而ArrayList是一个可变长数组

一般来说,插入和删除数据linkedlist效率要比arraylist高;

1、尾部插入元素时:①数据量在千万以下:linkedlist效率高,因为linkedlist有尾指针,linkedlist每次增加元素时会new一个node对象,数据量少时new出的node对象也少,arraylist扩容时间大于linkedlist 新建node时间,所以linkedlist效率高;②数据量在千万以上时,ArrayList效率高,因为linkedlist每次增加元素时会new一个node对象,数据量少时new出的node对象也少,但当数据量大后,new出的node对象相应增加,这样new node时间大于扩容时间,就会出现ArrayList效率比linkedlist高

2、插入/删除数据位置越往前,linkedlist效率比ArrayList高,因为linkedlist遍历插入位置花费时间少,而ArrayList需要将原数组所有元素进行一次数组复制

3、插入/删除数据位置越往中间,ArrayList效率比linkedlist高,因为linkedlist需要遍历查询中间位置比较浪费时间,所以慢一些

import java.util.*;
public class Test
{public static void main(String[] args){ArrayList<Integer> List = new ArrayList<Integer>();long start=System.currentTimeMillis();for( int i=0;i <10000;i++ ) //给数组增加10个Int元素List.add(i/2,i);System.out.println(System.currentTimeMillis()-start);//System.out.println(List);
        LinkedList<Integer> LList = new LinkedList<Integer>();long startL=System.currentTimeMillis();for( int i=0;i <10000;i++ ) //给数组增加10个Int元素LList.add(i/2,i);System.out.println(System.currentTimeMillis()-startL);//System.out.println(LList);
    }
}结果:
ArrayList 19毫秒LinkList 129毫秒

View Code

转载于:https://www.cnblogs.com/enhance/p/11311794.html

LinkedListArrayList相关推荐

  1. 黑马全套Java教程(八):集合进阶

    文章目录 31 集合进阶 31.1 Collection集合 Iterator迭代器 31.2 List集合 1. ListIterator 2. 增强for循环 31.3 数据结构 1. 栈 2. ...

  2. 数据结构教程(Java语言描述)前两章总结

    一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...

  3. 【Java 数据结构】双向链表

    篮球哥温馨提示:编程的同时不要忘记锻炼哦! 圆圆的脑袋,大大耳朵,天天敲代码,找找找bug 目录 1.什么是双向链表 2.实现一个双向链表 2.1 实现前的约定 2.2 addFirst 方法 2.3 ...

最新文章

  1. 为栈实现高效的max操作
  2. golang 使用 redis 的教程
  3. 界面原型设计工具Balsamiq、墨刀、Axure、Mockplus
  4. java scanner_Java Scanner skip()方法与示例
  5. jsessionid每次请求都在变_为什么每次沟通都变争吵,学会这4条沟通原则,解决90%的沟通问题...
  6. leetcode - 740. 删除与获得点数
  7. MTK 功耗优化(1)---MTK PerfService
  8. desc 枚举类型id_想让代码更优雅?Mybatis类型处理器了解一下!
  9. mysql 体重 类型 身高_MySQL 数据类型
  10. 如何优雅地用ARM开发板搭建服务器
  11. 学习 springboot 中出现的问题
  12. python写透视挂_python – OpenCV透视变换给出了意想不到的结果
  13. 用html和css做动态动物,CSS3 SVG实现可爱的动物哈士奇和狐狸动画
  14. 《数据结构》实验报告(一)顺序表基本操作
  15. h5生成海报到php生成海报
  16. Lua IDE - x-studio 强大的IDE
  17. 期货涨跌与什么有关(期货和股市涨跌有关系吗)
  18. 作业调度算法【平均周转时间、平均带权周转时间、先来先服务FCFS、短作业优先SJF、高优先权(级)算法FPF、高响应比优先算法HRRN】
  19. c++后端开发面试题
  20. 学习Docker之Docker初体验 简单用例---SpringBoot集成Docker的部署、发布与应用

热门文章

  1. HTML的基本知识-和常用标签-以及相对路径和绝对路径的区别
  2. 骁龙710、675、660、636之间性能差距有多大?
  3. 磕头如捣的拼音及解释
  4. 不喜欢溜须拍马屁的人适合在哪里工作?
  5. 亏了1000万,卖房卖车也要坚持梦想,值吗?
  6. 推行法定数字货币,现有支付宝/微信等支付系统,会否被数字货币支付系统替代并超越?
  7. Qt——P6 QPushButton创建
  8. 蓝桥杯---特别数的和(C语言)
  9. uni-app中view组件的基本使用
  10. ssas报表项目数据集_如何部署SSAS多维数据集