关于LinkedList和ArrayList的执行效率的问题的区别(测试用例)

package org.com.lin.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class ListTest {
    
    static int SIZE = 1600;
    static int COMP = 20000;
    public static List<Integer> getArrayList() {

        int k = 0;
        List<Integer> arrList = new ArrayList<Integer>();
        while (k < SIZE) {
            int num = (int) (Math.random() * 100000);
            arrList.add(num);
            k++;
        }
        
        return arrList;
    }
    
    public static List<Integer> getLinkedList() {

        int k = 0;
        List<Integer> linkedList = new LinkedList<Integer>();
        while (k < SIZE) {
            int num = (int) (Math.random() * 100000);
            linkedList.add(num);
            k++;
        }
        return linkedList;
    }
    public static void  removeFromArrList(List<Integer> list){
        for(int i=0;i<list.size();i++){
            if(list.get(i).equals(COMP)){
                list.remove(i);
            }
        }
    }
    public static void  removeFromArrList2(List<Integer> list){
        Iterator<Integer> iter = list.iterator();
        while(iter.next().equals(COMP)){
            iter.remove();
        }
    }
    public static void  removeFromLinkedList(List<Integer> list){
        for(int i=0;i<list.size();i++){
            if(list.get(i).equals(COMP)){
                list.remove(i);
            }
        }
    }
    public static void  removeFromLinkedLis2(List<Integer> list){
        Iterator<Integer> iter = list.iterator();
        while(iter.next().equals(COMP)){
            iter.remove();
        }
    }
    public static void removeEvensVer(List<Integer> list){
        Iterator<Integer> itr = list.iterator();
        while(itr.hasNext()){
            if(itr.next()%2 == 0){
                itr.remove();
            }
        }
    }
    public static void removeEvensVer2(List<Integer> list){
       for(int i=0;i<list.size();i++){
           if(list.get(i)%2 == 0){
               list.remove(i);
               i--;
           }
       }
    }
    public static void main(String[] args) {
//        List<Integer> arrList2= getArrayList();
//        List<Integer> linkedList2 = getLinkedList();
//        long t1 = System.currentTimeMillis();
//        List<Integer> arrList= getArrayList();
//        long t2 = System.currentTimeMillis();
//        List<Integer> linkedList = getLinkedList();
//        long t3 = System.currentTimeMillis();
//        for(int i=0;i<arrList.size();i++){
//           Integer v =  arrList.get(i);
//        }
//        long t4 = System.currentTimeMillis();
//        for(Integer value:arrList){
//            Integer v = value;
//        }
//        long t5 = System.currentTimeMillis();
//        removeFromArrList(arrList);
//        long t6 = System.currentTimeMillis();
//        removeFromArrList2(arrList2);
//        long t7 = System.currentTimeMillis();
//        removeFromLinkedList(linkedList);
//        long t8 = System.currentTimeMillis();
//        removeFromLinkedLis2(linkedList2);
//        long t9 = System.currentTimeMillis();
//        for(int i=0;i<linkedList2.size();i++){
//            Integer v =  linkedList2.get(i);
//         }
//         long t10 = System.currentTimeMillis();
//         for(Integer value:linkedList2){
//             Integer v = value;
//             }
//        
//         long t11 = System.currentTimeMillis();
//        System.out.println("存放所需时间:"+(t2-t1)+",LinkedList:"+(t3-t2));
//        System.out.println("循环ArrayList所需时间:"+(t4-t3)+",迭代所需时间"+(t5-t4));
//        System.out.println("removeFromArrList:"+(t6-t5)+",迭代"+(t7-t6));
//        
//        
//        System.out.println("removeFromLinkedList:"+(t8-t7)+",迭代"+(t9-t8));
//        System.out.println("循环LinkedList所需时间:"+(t10-t9)+",迭代所需时间"+(t11-t10));
//        
//        
//        List<Integer> arrList3= getArrayList();
//        List<Integer> linkedList3 = getLinkedList();
//
//        long tt1 = System.currentTimeMillis();
       removeEvensVer(arrList3);
//        long tt2= System.currentTimeMillis();
//        removeEvensVer(linkedList3);
//        long tt3 = System.currentTimeMillis();
//        System.out.println("从ArrList中除去偶数花费时间:"+(tt2-tt1)+",从LinkedList中除去偶数花费时间:"+(tt3-tt2));
//        
//        
//        long tt101 = System.currentTimeMillis();
//        removeEvensVer2(arrList3);
//        long tt102 = System.currentTimeMillis();
//        //removeEvensVer2(linkedList3);
//        long tt103 = System.currentTimeMillis();
//        System.out.println("从ArrList中除去偶数花费时间:"+(tt102-tt101)+",从LinkedList中除去偶数花费时间:"+(tt103-tt102));
//        System.out.println("arrList3.size():"+arrList3.size()+",linkedList3.size():"+linkedList3.size());
        List<Integer> lnkList = new LinkedList<Integer>();
        List<Integer> arrList = new ArrayList<Integer>();
        //插入是否有序
        for(int i = 0;i < 2000 ; i++){
            lnkList.add(i);
            arrList.add(i);
        }
        for(int i=0;i<2000;i++){
            System.out.println(lnkList.get(i));
            System.out.println(arrList.get(i));
        }
    }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值