ArrayList 和linkedList 插入比较

从学Java开始, 就一直大脑记着  arrayList 底层是数组 ,查询快, 插入慢, 有移动的动作。linkedList 底层链表, 插入快 查询慢,今天写了例子跑了跑, 果然。

public class ListTest {
    public static void main(String[] args)throws Exception {
        Thread thread = new Thread(()->{
            addArraylist();

        });
        Thread thread2 = new Thread(()->{
            addLinkedList();
        });
        thread.start();
        thread.join();
        thread2.start();
        thread2.join();

    }
    private static void addArraylist(){
        ArrayList<String > arrayList = new ArrayList();
        long begin2 = System.currentTimeMillis();
        for(int j= 0 ;j<1000000;j++){
            arrayList.add(j+"===");
        }
        System.out.println("arraylist花费了:"+(System.currentTimeMillis()-begin2)+"毫秒");
        System.out.println(arrayList.size());

    }

    private static void addLinkedList(){
        LinkedList <String >linkedList = new LinkedList();
        long begin = System.currentTimeMillis();
        for( int i=0 ;i<1000000;i++){
            linkedList.add(i+"===");
        }
        System.out.println("linkedList花费了:"+(System.currentTimeMillis()-begin)+"毫秒");
        System.out.println(linkedList.size());
    }



}

=============输出结构是:

数据量比较少时 ,看的不明显, 当数据在100000以内 ,结果差不多, 大于100 万, 感觉到执行时间差距很大了。心里有个底。

==================================================================================

说下两种集合的用途: 数组, 开发中主要是为了查询快,这个用的最多, 比如从数据库分页查询 数据, 需要 遍历 。

链表 Linkedlist  用作 堆栈(比如虚拟机栈 , 大量的变量作用,指令操作, 基本都链表结构), 队列 比较多, 比如 线程池的 队列啊, 插入删除快。

扫描二维码关注公众号,回复: 3055364 查看本文章

猜你喜欢

转载自www.cnblogs.com/zgghb/p/9588493.html