zoukankan      html  css  js  c++  java
  • ArrayList与LinkedList性能差别

    1、             ArrayList和LinkedList插入元素性能差别

    ArrayList内部使用数组存储,针对这一性质,在数组最后插入元素较快,在数组中间插入元素较慢,因为插入位置之后的元素要后移。而LinkedList在哪个位置插入都比较快,当然在LinkedList中间位置插入时,也涉及到遍历时间,但是该时间比较短。下面是测试。

    测试一:插入到最后位置,性能差别不大

    package com.pcitc.pattern.collection;

    import java.util.AbstractList;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.Iterator;

    import java.util.LinkedList;

    import java.util.List;

    public class ArryListClient {

    /**

     * @param args

     */

    public static void main(String[] args) {

               List<UserBean> list = new ArrayList<UserBean>();

               List<UserBean> linkedlist = new LinkedList<UserBean>();

              

               int count = 100000;

        System.out.println("run...");

               UserBean ub = null;

            long i1 = System.currentTimeMillis();

            for(int i = 0;i<count;i++){

            ub = new UserBean(""+i,i,"ddd"+i);

            list.add(i,ub);

            }

            long i2 = System.currentTimeMillis();

            System.out.println("增加元素,Arraylist耗时:" + (i2-i1));

          

            long i3 = System.currentTimeMillis();

            for(int i = 0;i<count;i++){

            ub = new UserBean(""+i,i,"ddd"+i);

            linkedlist.add(0,ub);

            }

            long i4 = System.currentTimeMillis();

            System.out.println("增加元素,linkedlist耗时:" + (i4-i3));   

        

            list.clear();

            linkedlist.clear();

            list = null;

            linkedlist = null;

    }

    性能一运行结果:

    run...

    增加元素,Arraylist耗时:219

    增加元素,linkedlist耗时:141

    测试二:插入到首位置,性能差别大

    package com.pcitc.pattern.collection;

    import java.util.AbstractList;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.Iterator;

    import java.util.LinkedList;

    import java.util.List;

    public class ArryListClient {

    /**

     * @param args

     */

    public static void main(String[] args) {

               List<UserBean> list = new ArrayList<UserBean>();

               List<UserBean> linkedlist = new LinkedList<UserBean>();

              

               int count = 100000;

        System.out.println("run...");

               UserBean ub = null;

            long i1 = System.currentTimeMillis();

            for(int i = 0;i<count;i++){

            ub = new UserBean(""+i,i,"ddd"+i);

            list.add(0,ub);

            }

            long i2 = System.currentTimeMillis();

            System.out.println("增加元素,Arraylist耗时:" + (i2-i1));

          

            long i3 = System.currentTimeMillis();

            for(int i = 0;i<count;i++){

            ub = new UserBean(""+i,i,"ddd"+i);

            linkedlist.add(0,ub);

            }

            long i4 = System.currentTimeMillis();

            System.out.println("增加元素,linkedlist耗时:" + (i4-i3));   

        

            list.clear();

            linkedlist.clear();

            list = null;

            linkedlist = null;

    }

    }

    性能二运行结果:性能差36倍之多

    run...

    增加元素,Arraylist耗时:6250

    增加元素,linkedlist耗时:234

  • 相关阅读:
    接口自动化测试中解决所遇问题的博客链接
    python中logging日志模块详解
    yaml.load()时总是出现警告:YAMLLoadWarning: calling yaml.load() without Loader=...
    基于ArcGIS Desktop 10.2开发的环境安装
    【部署】IIS导入证书后绑定报错“证书中的一个或多个中间证书丢失”
    IIS7.x 生成CSR证书请求文件
    Sql Server多种分页性能的比较
    网页上出现D盾拦截,删除、取消
    Fusioncharts图表常用参数设置
    Windows Server 2016 安装.NET Framework 3.5 错误
  • 原文地址:https://www.cnblogs.com/mysqlcluster/p/2033597.html
Copyright © 2011-2022 走看看