2013-05-27 46 views
0

我有一個2 arraylist包含巨大的日期時間數據。一個數組列表包含10萬個日期時間,另一個數組列表包含12萬個日期時間。我想比較一個arraylist項目與另一個每個項目arralylist。如何比較java中最大的arraylist中的兩個日曆?

例如:

ArrayList<Calendar> al1 = new ArrayList<Calendar>();//contains 100 thousand datetimes,sorted 
ArrayList<Calendar> al2 = new ArrayList<Calendar>();//contains 200 thousand datetimes,sorted 
//al1.retainall(1l2); // i have tried this.but its taking too much of time. 

// i want to retrieve watever same time from al1 to al2 
//so i have used loop,still i am getting too much of time. 

有什麼辦法來減少比較times.?can人的ArrayList中,請幫助我的時間?

+2

那種東西,對它們進行比較? – bdares

回答

3

我會將一個列表存儲在一個HashSet中,其值是millsecs long的值。你也可以使用HashMap。也許這個例子可能會幫助你。

Set<Long> myTimes = new HashSet<Long>(); 
for(Calendar auxCal : al1){ 
    myTimes.add(auxCal.getTimeInMillis()); 
} 

for(Calendar auxCal : al2){ 
    if(myTimes.contains(auxCal.getTimeInMillis())){ 
     System.out.println(auxCal.getTime()+ " Matches"); 
    } 
} 
+0

謝謝你我知道了 – shree

+0

不客氣 – PbxMan

0

,如果有可能您的數據排序,然後使用二進制搜索或類似的