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));
}
}
}