arraylist与linkedlist的区别与性能测试
/**
*arraylist和linkedlist的适用场合。
**/
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Date;
public class Demo2{
public static void main(String[]aa){
switch (aa[0]){
case "0":arrylistInset();break;
case "1":linkedlistInset();break;
case "2":arrylistGet();break;
case "3":linkedlistGet();break;
} }
public static void arrylistInset(){ //967ms
List<Integer> list = new ArrayList<Integer> (); for(int i=0;i<5000;i++){//创建数据表
for(int j=1;j<1000;j++){
list.add(i+j);
}
}
Long begin = new Date().getTime();
for(int i=3;i<1000;i+=3){//插入数据
list.add(i,i);
}
Long end = new Date().getTime();
System.out.println("cost : " + (end - begin)+ " ms");
System.out.println("number:" + list.size());
}
public static void linkedlistInset(){ //15ms
List<Integer> list = new LinkedList<Integer> (); for(int i=0;i<5000;i++){//创建数据
for(int j=1;j<1000;j++){
list.add(i+j);
}
}
Long begin = new Date().getTime();
for(int i=3;i<1000;i+=3){//插入数据
list.add(i,i);
}
Long end = new Date().getTime();
System.out.println("cost : " + (end - begin)+ " ms");
System.out.println("number:" + list.size());
}
public static void arrylistGet(){ //get 1w条数据花费时间:0ms
// 10w条:0ms;
List<Integer> list = new ArrayList<Integer> (); for(int i=0;i<5000;i++){//创建数据表
for(int j=1;j<1000;j++){
list.add(i+j);
}
}
Long begin = new Date().getTime();
for(int i=3;i<50000;i++){//插入数据
list.get(i);
}
Long end = new Date().getTime();
System.out.println("cost : " + (end - begin)+ " ms");
System.out.println("number:" + list.size());
}
public static void linkedlistGet(){ //get 1w条数据花费时间:219ms
// 10w条:6616ms;
List<Integer> list = new LinkedList<Integer> (); for(int i=0;i<5000;i++){//创建数据
for(int j=1;j<1000;j++){
list.add(j);
}
}
Long begin = new Date().getTime();
for(int i=3;i<50000;i++){//插入数据
list.get(i);
}
Long end = new Date().getTime();
System.out.println("cost : " + (end - begin)+ " ms");
System.out.println("number:" + list.size());
}
}
/**
*总结:
*1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
*2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
*3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据
**/
arraylist与linkedlist的区别与性能测试的更多相关文章
- LintCode Reverse LinkedList (ArrayList 和 LinkedList 的区别)
1. ArrayList 和 LinkedList 的区别 http://pengcqu.iteye.com/blog/502676 2. How to reverse LinkedList http ...
- 你真的说的清楚ArrayList和LinkedList的区别吗
参见java面试的程序员,十有八九会遇到ArrayList和LinkedList的区别?相信很多看到这个问题的人,都能回答个一二.但是,真正搞清楚的话,还得花费一番功夫. 下面我从4个方面来谈谈这个问 ...
- java集合框架05——ArrayList和LinkedList的区别
前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...
- Java中ArrayList与LinkedList的区别
Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...
- Java进阶(十七)ArrayList与LinkedList的区别
ArrayList与LinkedList的区别 ArrayList ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayLis ...
- 【转】ArrayList与LinkedList的区别和适用场景
ArrayList 优点:ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的). 缺点:因为地址连续,当要插入和删除时,Arra ...
- JAVA中ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题
近期在做一个对接京东的电商平台,所以对各个地方的效率考虑的比较多,今天深挖了一下ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题,首先说一下两种 ...
- 理解ArrayList与LinkedList的区别
一.先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只 ...
- java集合框架之ArrayList与LinkedList的区别
参考http://how2j.cn/k/collection/collection-arraylist-vs-linkedlist/690.html#nowhere ArrayList和LinkedL ...
随机推荐
- jquery中对动态生成的标签响应click事件(二)…与ajax交互使用
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncodin ...
- jQuery 插件autocomplete
jQuery 插件autocomplete 自动加载 参考: http://www.cnblogs.com/Peter-Zhang/archive/2011/10/22/2221147.html ht ...
- java类加载器的层次结构
类加载器的层次结构: 引导类加载器(bootstrap class loader) 用来加载java的核心库(JAVA_HOME/jre/lib/rt.jar,或sun.boot.class.path ...
- JavaScript入门篇 第三天(认识DOM)
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...
- win7 备份错误解决
解决win7 备份出错, 开启服务: windows backup volume shadow copy
- Android课程---课下练习(表格、线性和相对布局)
1.表格布局 练习代码: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns: ...
- ExtJS笔记 Reader
Readers are used to interpret data to be loaded into a Model instance or a Store - often in response ...
- 阿里云专有网络与弹性公网IP
阿里云服务器经典网络和专有网络究竟有什么区别? 在用户提交订单购买阿里云ECS云服务器时,会面临怎样选择网络类型的烦恼,阿里云服务器定制购买时,网络类型里的经典网络和专有网络(VPC)是什么含义,该怎 ...
- NEC学习 ---- 模块 -水平文字链接列表
HTML代码: <div class="container"> <div class="m-list1"> <ul class=& ...
- Flink -- Barrier
CheckpointBarrierHandler 这个接口用于react从input channel过来的checkpoint barrier,这里可以通过不同的实现来,决定是简单的track bar ...