/**
*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的区别与性能测试的更多相关文章

  1. LintCode Reverse LinkedList (ArrayList 和 LinkedList 的区别)

    1. ArrayList 和 LinkedList 的区别 http://pengcqu.iteye.com/blog/502676 2. How to reverse LinkedList http ...

  2. 你真的说的清楚ArrayList和LinkedList的区别吗

    参见java面试的程序员,十有八九会遇到ArrayList和LinkedList的区别?相信很多看到这个问题的人,都能回答个一二.但是,真正搞清楚的话,还得花费一番功夫. 下面我从4个方面来谈谈这个问 ...

  3. java集合框架05——ArrayList和LinkedList的区别

    前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...

  4. Java中ArrayList与LinkedList的区别

    Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...

  5. Java进阶(十七)ArrayList与LinkedList的区别

    ArrayList与LinkedList的区别 ArrayList ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayLis ...

  6. 【转】ArrayList与LinkedList的区别和适用场景

    ArrayList 优点:ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的). 缺点:因为地址连续,当要插入和删除时,Arra ...

  7. JAVA中ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题

    近期在做一个对接京东的电商平台,所以对各个地方的效率考虑的比较多,今天深挖了一下ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题,首先说一下两种 ...

  8. 理解ArrayList与LinkedList的区别

    一.先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只 ...

  9. java集合框架之ArrayList与LinkedList的区别

    参考http://how2j.cn/k/collection/collection-arraylist-vs-linkedlist/690.html#nowhere ArrayList和LinkedL ...

随机推荐

  1. 由easyui的tab在ie下渲染失败,发现的一个有意义的问题

    今天项目组的同事反映,在IE浏览器下,所有用easyui编写的tab控件都加载不出来,只会显示一个Loading的提示在控件的内容显示区. 刚分析这个问题,首先怀疑是使用easyui的tab的脚本写法 ...

  2. iOS 如何通过CocoaPods添加第三方框架

    一  先安装Ruby环境: http://ruby-china.org/wiki/install_ruby_guide 在安装的时候,若是出现: 1.You don't have write perm ...

  3. Datatable转换Json

    #region Datatable转换为Json        /// <summary>         /// Datatable转换为Json         /// </su ...

  4. Bootstrap css栅格 + 网页中插入代码+css表格

    设计达人 http://www.shejidaren.com/30-minimal-app-icons.html CSS栅格: <!DOCTYPE html> <html lang= ...

  5. 使用Apache的.htaccess就可以防盗链

    Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当 ...

  6. 安装Arch Linux

    参考自:https://wiki.archlinux.org/index.php/Main_Page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 用fdisk建立分区 ...

  7. asp.net identity 2.2.0 在WebForm下的角色启用和基本使用(二)

    管理用户功能: 界面部分: <%@ Page Title="" Language="C#" MasterPageFile="~/Site.mas ...

  8. mysql组合索引顺序参考

    问题背景 : 当我们需要创建一个组合索引, 索引的顺序对于效率影响很大, 怎么确定索引的顺序; 解决方法 : 我们应该依据字段的全局基数和选择性, 而不是字段的某个具体的值来确定; 表结构 :  dc ...

  9. 【转】Unity中的协同程序-使用Promise进行封装(一)

    原文:http://gad.qq.com/program/translateview/7170767 译者:陈敬凤(nunu)    审校:王磊(未来的未来) 每个Unity的开发者应该都对协同程序非 ...

  10. 生成器(generator)内部解析

    #http://kb.cnblogs.com/page/87128/(未看完)