ArrayList, LinkedList, Vector, Stack使用

import java.util.*;

import java.lang.Class;

/*

 * @desc 对比ArrayListLinkedList的插入、随机读取效率、删除的效率

 *

 * @author skywang

 */

public class ListCompareTest {

    private static final int COUNT = 100000;

    private static LinkedList linkedList = new LinkedList();

    private static ArrayList arrayList = new ArrayList();

    private static Vector vector = new Vector();

    private static Stack stack = new Stack();

    public static void main(String[] args) {

        // 换行符

        System.out.println();

        // 插入

        insertByPosition(stack) ;

        insertByPosition(vector) ;

        insertByPosition(linkedList) ;

        insertByPosition(arrayList) ;

        // 换行符

        System.out.println();

        // 随机读取

        readByPosition(stack);

        readByPosition(vector);

        readByPosition(linkedList);

        readByPosition(arrayList);

        // 换行符

        System.out.println();

        // 删除

        deleteByPosition(stack);

        deleteByPosition(vector);

        deleteByPosition(linkedList);

        deleteByPosition(arrayList);

    }

    // 获取list的名称

    private static String getListName(List list) {

        if (list instanceof LinkedList) {

            return "LinkedList";

        } else if (list instanceof ArrayList) {

            return "ArrayList";

        } else if (list instanceof Stack) {

            return "Stack";

        } else if (list instanceof Vector) {

            return "Vector";

        } else {

            return "List";

        }

    }

    // list的指定位置插入COUNT个元素,并统计时间

    private static void insertByPosition(List list) {

        long startTime = System.currentTimeMillis();

        // list的位置0插入COUNT个数

        for (int i=0; i<COUNT; i++)

            list.add(0, i);

        long endTime = System.currentTimeMillis();

        long interval = endTime - startTime;

        System.out.println(getListName(list) + " : insert "+COUNT+" elements into the 1st position use time" + interval+" ms");

    }

    // list的指定位置删除COUNT个元素,并统计时间

    private static void deleteByPosition(List list) {

        long startTime = System.currentTimeMillis();

        // 删除list第一个位置元素

        for (int i=0; i<COUNT; i++)

            list.remove(0);

        long endTime = System.currentTimeMillis();

        long interval = endTime - startTime;

        System.out.println(getListName(list) + " : delete "+COUNT+" elements from the 1st position use time" + interval+" ms");

    }

    // 根据position,不断从list中读取元素,并统计时间

    private static void readByPosition(List list) {

        long startTime = System.currentTimeMillis();

        // 读取list元素

        for (int i=0; i<COUNT; i++)

            list.get(i);

        long endTime = System.currentTimeMillis();

        long interval = endTime - startTime;

        System.out.println(getListName(list) + " : read "+COUNT+" elements by position use time" + interval+" ms");

    }

}

 

结果:

Stack : insert 100000 elements into the 1st position use time:1640 ms

Vector : insert 100000 elements into the 1st position use time:1607 ms

LinkedList : insert 100000 elements into the 1st position use time:29 ms

ArrayList : insert 100000 elements into the 1st position use time:1617 ms

Stack : read 100000 elements by position use time:9 ms

Vector : read 100000 elements by position use time:6 ms

LinkedList : read 100000 elements by position use time:10809 ms

ArrayList : read 100000 elements by position use time:5 ms

Stack : delete 100000 elements from the 1st position use time:1916 ms

Vector : delete 100000 elements from the 1st position use time:1910 ms

LinkedList : delete 100000 elements from the 1st position use time:15 ms

ArrayList : delete 100000 elements from the 1st position use time:1909 ms

转载于:https://www.cnblogs.com/chengshixiaonongming/p/10410663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值