您的位置:首页 > 其它

对于合并两个LSIT方法比较

2009-11-30 18:47 239 查看
对于合并两个LSIT,分别用ARRAYLIST,hashList,treeList方法比较,分别以9999个数字组成的两个不同的LIST,有7000个相同的数字,比较的结果是:
ARRAYLIST 保持以前队列,执行时间是1219ms
hashList 队列顺序随机,执行时间是16m
treeList 队列顺序是从小到大派讯好,执行时间是2390ms

代码是:
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class ArrayListSort {

public static void ArrayListSort(ArrayList <Integer> list1,ArrayList <Integer> list2){
/*
//(Array)List.removeAll/addAll/retainAll
//printlnList(list1,"org list1");
//printlnList(list2,"org list2");
ArrayList <Integer> newList=new ArrayList <Integer>();
ArrayList <Integer> newList2=new ArrayList <Integer>();
ArrayList <Integer> newList3=new ArrayList <Integer>();
newList2.addAll(list1);
newList3.addAll(list2);
newList2.removeAll(newList3);
newList.addAll(newList2);
newList.addAll(newList3);
//printlnList(newList,"newList");
list1.retainAll(list2);
//printlnList(list1,"list1");
//printlnList(list2,"list2");
* */
long date1=new Date().getTime();
ArrayList <Integer> newList=list2;
list1.removeAll(list2);
newList.addAll(list1);
long date2=new Date().getTime();
System.out.println(newList.size());
System.out.println(date2-date1);
}

public static void ArrayListSort2(ArrayList <Integer> list1,ArrayList <Integer> list2){
long date1=new Date().getTime();
ArrayList <Integer> newList=new ArrayList <Integer> ();
newList.addAll(list2);
newList.removeAll(list1);
newList.addAll(list1);
long date2=new Date().getTime();
System.out.println(newList.size());
System.out.println(date2-date1);
}

public static void hashListSort(ArrayList <Integer> list1,ArrayList <Integer> list2){
long date1=new Date().getTime();
HashSet hash = new HashSet(list2);
hash.removeAll(list1);
//printlnList(list2,"new list2");
list1.addAll(hash);
long date2=new Date().getTime();
System.out.println(list1.size());
System.out.println(date2-date1);
}
public static void TreeSetSort(ArrayList <Integer> list1,ArrayList <Integer> list2){
//printlnList(list1,"org list1");
//printlnList(list2,"org list2");
long date1=new Date().getTime();
Set set = new TreeSet();
set.addAll(list1);
set.removeAll(list2);
set.addAll(list2);
long date2=new Date().getTime();
System.out.println(new ArrayList(set).size());
System.out.println(date2-date1);
//printlnList(new ArrayList(set1),"TreeSetSort set1");
//printlnList(list1,"TreeSetSort list1");

//printlnList(new ArrayList(set),"TreeSetSort list");
}

public static void printlnList(ArrayList <Integer> list1,String str){
System.out.print(str+"=>");
//for(int i=0;i<list1.size(); i++){
// System.out.print(list1.get(i)+",");
// }
for(Iterator <Integer> inte=list1.iterator();inte.hasNext();){
System.out.print(inte.next().toString()+",");
}
System.out.println(" ");
}
public static void main(String[] ag0){

ArrayList <Integer> list1=new ArrayList <Integer>();
for(int k=1;k<10000;k++){
list1.add(k);
}

ArrayList <Integer> list2=new ArrayList <Integer>();
for(int j=7001;j<17000;j++){
list2.add(j);
}
ArrayList <Integer> list11=new ArrayList <Integer>();
ArrayList <Integer> list22=new ArrayList <Integer>();

list11.addAll(list1);
list22.addAll(list2);
ArrayListSort(list1,list2);
// ArrayListSort2(list11,list22);

hashListSort(list1,list2);
TreeSetSort(list1,list2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: