对下面代码进行测试 测试数组和链表的数据删除出算法测试
问题来源
package cn.itcast.shujujiegou;
import java.util.Iterator;
/**
* Created by likailong on 2016/9/27.
* 测试代码有效性
*/
public class TimeTest {
public static void main(String [] args){
MyArrayList <Integer> m=new MyArrayList<>();
MyLinkedList <Integer> S=new MyLinkedList<>();
for(int i=0;i<800000;i++){
m.add(i);
S.add(i);
}
long start = System.currentTimeMillis();
removeEvent(m);
long end = System.currentTimeMillis();
System.out.println(end-start);
long starts = System.currentTimeMillis();
removeEvent2(S);
long ends = System.currentTimeMillis();
System.out.println(ends-starts);
}
public static void removeEvent(MyArrayList myArrayList){
Iterator aa = myArrayList.iterator();
while(aa.hasNext()){
if((int)aa.next()%2==0)
aa.remove();
}
}
public static void removeEvent2(MyLinkedList myArrayList){
Iterator aa = myArrayList.iterator();
while(aa.hasNext()){
if((int)aa.next()%2==0)
aa.remove();
}
}
}
对上面算法进行测试
结果是用链表的算法时间复杂度是线性的 因此如果对较小数据进行删除 应该用自己的迭代器自己的删除方法快一些。