2012-08-29 20 views
16

Tengo dos matrices. Array1 contiene 15 objetos y Array2 contiene 4 objetos. Hay dos objetos comunes de ambas matrices, solo quiero obtener esa matriz resultante de esos 2 objetos.cómo intersectar dos matrices en el objetivo C?

Debería ser como la intersección de dos conjuntos, pero ¿cómo hacer en el objetivo C para la matriz ..? Por favor ayuda. Gracias.

+4

¿Qué pasa con la creación de 2 juegos con sus matrices y luego invocar la intersección largo de los conjuntos? –

+1

ver esto http://stackoverflow.com/a/1475656/1030951 – HarshIT

+0

Gracias @Hadley y Ricard, obtuve la solución de filtrar mi resultado usando NSSet. Tengo mi matriz resultante ... !! – Dishant

Respuesta

47

Usando NSMutableSet

NSMutableSet *set1 = [NSMutableSet setWithArray: array1]; 
NSSet *set2 = [NSSet setWithArray: array2]; 
[set1 intersectSet: set2]; 
NSArray *resultArray = [set1 allObjects]; 
+1

Aquí set1 debe ser NSMutableSet porque NSMutableSet tiene la extensión intersectSet method –

+2

¿Qué tan bien funciona esto si estas matrices son bastante grandes, como 2000 objetos cada una? ¿Es esta una solución escalable? – zumzum

+0

¡Vale la pena decir por qué uno usaría NSSet por razones de eficiencia! El código que usa NSSets funcionará más rápido (mejor eficiencia en el tiempo de ejecución) que el equivelante de bucle for. – occulus