对于合并两个LSIT方法比较

  对于合并两个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);
  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值