0
点赞
收藏
分享

微信扫一扫

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

半秋L 2022-12-07 阅读 41

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 条评论