2012-11-01 62 views
0

我有一個問題,我需要比較兩個數組,我想獲得無與倫比的值。Android比較兩個數組?

例子:

List<String> Array1=new ArrayList<String>(); 
List<String> Array2=new ArrayList<String>(); 
List<String> Array3=new ArrayList<String>(); 

Array1.add("1"); 
Array1.add("23"); 
Array1.add("1211"); 
Array1.add("12232"); 
Array1.add("231"); 
Array1.add("2231"); 

Array2.add("1"); 
Array2.add("23"); 
Array2.add("231"); 
Array2.add("2231"); 

// Array3 values are 1211 12232 

這可能嗎?

+1

請閱讀[Java命名約定(http://java.about.com/od/javasyntax/a/nameconventions.htm )其中聲明類以大寫字母開頭,變量不以。 – Sam

+1

僅供參考,這與Android無關。 –

回答

3

您需要使用removeAll

List<String> array3 = new ArrayList<String>(array1);//Create copy of array 1 
array3.removeAll(array2);//Remove common elements 
0

你必須自己動手,但這並不難。一種可能的解決方案:

Collections.sort(Array2); // Don't need this one if Array2 is already sorted. 
for(String s : Array1) { 
    if (Collections.binarySearch(Array2, s) < 0) 
     Array3.add(s); 
} 
3

使用SET(它會刪除重複過)

Set<String> set1 = new HashSet(array1); 
Set<String> set2 = new HashSet(array2); 
set1.removeAll(set2);