iphone - precio - ipad pro



compara dos matrices y consigue los elementos comunes (2)

Tengo dos matrices, pero tienen diferentes longitudes . Quiero comparar estas dos matrices y colocar elementos comunes en una nueva matriz . Mientras tanto, no debería haber elementos duplicados en la tercera matriz. Realmente me equivoqué con esto, por favor, ayúdame. muy agradecido . .

https://src-bin.com


Answer #1

¿Algo como esto?

NSMutableSet* set1 = [NSMutableSet setWithArray:array1];
NSMutableSet* set2 = [NSMutableSet setWithArray:array2];
[set1 intersectSet:set2]; //this will give you only the obejcts that are in both sets

NSArray* result = [set1 allObjects];

Esto tiene la ventaja de no buscar los objetos en la matriz, mientras recorre otra matriz, que tiene una complejidad de N ^ 2 y puede tomar un tiempo si las matrices son grandes.

Edición: set2 no tiene que ser mutable, también podría usarlo

NSSet* set2 = [NSSet setWithArray:array2];

Answer #2

Iterar sobre array1 y buscarlo en array2. Si lo encuentra, agréguelo a array3 si aún no lo tiene.

for (MyObject* obj in array1)
{ 
     if([array2 containsObject:obj] && ![array3 containsObject:obj])
        [array3 addObject:obj];
}

Si array1 no tiene elementos duplicados, no necesita la segunda comprobación.

HTH,

Akshay





iphone-sdk-3.0