LinkedListArrayList
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相关推荐
- 黑马全套Java教程(八):集合进阶
文章目录 31 集合进阶 31.1 Collection集合 Iterator迭代器 31.2 List集合 1. ListIterator 2. 增强for循环 31.3 数据结构 1. 栈 2. ...
- 数据结构教程(Java语言描述)前两章总结
一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...
- 【Java 数据结构】双向链表
篮球哥温馨提示:编程的同时不要忘记锻炼哦! 圆圆的脑袋,大大耳朵,天天敲代码,找找找bug 目录 1.什么是双向链表 2.实现一个双向链表 2.1 实现前的约定 2.2 addFirst 方法 2.3 ...
最新文章
- 为栈实现高效的max操作
- golang 使用 redis 的教程
- 界面原型设计工具Balsamiq、墨刀、Axure、Mockplus
- java scanner_Java Scanner skip()方法与示例
- jsessionid每次请求都在变_为什么每次沟通都变争吵,学会这4条沟通原则,解决90%的沟通问题...
- leetcode - 740. 删除与获得点数
- MTK 功耗优化(1)---MTK PerfService
- desc 枚举类型id_想让代码更优雅?Mybatis类型处理器了解一下!
- mysql 体重 类型 身高_MySQL 数据类型
- 如何优雅地用ARM开发板搭建服务器
- 学习 springboot 中出现的问题
- python写透视挂_python – OpenCV透视变换给出了意想不到的结果
- 用html和css做动态动物,CSS3 SVG实现可爱的动物哈士奇和狐狸动画
- 《数据结构》实验报告(一)顺序表基本操作
- h5生成海报到php生成海报
- Lua IDE - x-studio 强大的IDE
- 期货涨跌与什么有关(期货和股市涨跌有关系吗)
- 作业调度算法【平均周转时间、平均带权周转时间、先来先服务FCFS、短作业优先SJF、高优先权(级)算法FPF、高响应比优先算法HRRN】
- c++后端开发面试题
- 学习Docker之Docker初体验 简单用例---SpringBoot集成Docker的部署、发布与应用