2012-11-01 8 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

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<String> set1 = new HashSet(array1); 
Set<String> set2 = new HashSet(array2); 
set1.removeAll(set2);