/**
*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. thinkphp3.2设置session的过期时间

    thinkPHP3.2中session的过期时间配置是不能使用的,我们需要修改一下它的配置文件thinkPHP>common>functions.php,找到这一行: if(isset($ ...

  2. #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    解决办法 打开 phpmyadmin里的config.inc.php文件 $cfg['Servers'][$i][ 'host'] = 'localhost';$cfg['Servers'][$i][ ...

  3. CSS DIV 独占一行,清除左右两边的浮动

    clear:both //表示清除左右两边浮动的层,自己独占一行

  4. SpringMVC下的Shiro权限框架的使用

    SpringMVC+Shiro权限管理 博文目录 权限的简单描述 实例表结构及内容及POJO Shiro-pom.xml Shiro-web.xml Shiro-MyShiro-权限认证,登录认证层 ...

  5. javascript保留关键字

    1.通用保留关键字 break delete function return typeof case do if switch var catch else in this void continue ...

  6. level分层次输出内容添加leve

    代码如下:function getSubComments($parent = 0, $level = 0) { $db = &JFactory::getDBO(); $sql = " ...

  7. GDC2016 【全境封锁】的全局照明技术

    现在全力支持公司的GAD平台了,很多的内部分享也可以放出来 http://gad.qq.com/article/detail/7159232

  8. 直观友好的单个memcache监控工具:phpmemcache.php

    上传phpmemcache.php到指定文件 修改文件中的: define('ADMIN_USERNAME','user');     // Admin Usernamedefine('ADMIN_P ...

  9. fight

    为啥用block  copy. 从栈到拷贝到堆 循环引用,控制器引用block. block里面调用 self self引用控件,控件引用block,block里面引用self http://www. ...

  10. ASP.NET MVC视图中的@Html.xxx(...)

    问题 在视图页中@Html.xxx(...)是什么?如何被执行? 如下图所示: 解疑 视图页中@Html.xxx(...)涉及的内容有: 视图页被编译后的类继承自 WebViewPage<T&g ...