2012-08-29 17 views
16

Ho due array. Array1 contiene 15 oggetti e Array2 contiene 4 oggetti. Ci sono 2 oggetti comuni da entrambi gli array, voglio solo ottenere quell'array risultato di quei 2 oggetti.come intersecare due array nell'obiettivo C?

Dovrebbe essere come l'intersezione di due Set, ma come fare in Objective C per array ..? Per favore aiuto. Grazie.

+4

cosa circa la creazione di 2 set con gli array e poi invocare l'intersezione negli insiemi? –

+1

vedere questo http://stackoverflow.com/a/1475656/1030951 – HarshIT

+0

Grazie a @Hadley e Ricard, ho ottenuto la soluzione di filtrare il mio risultato usando NSSet. Ho ottenuto la mia matrice di risultati .. !! – Dishant

risposta

47

Utilizzando NSMutableSet

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

Qui set1 deve essere NSMutableSet perché NSMutableSet ha estensione intersectSet metodo –

+2

quanto bene funziona se questi array sono abbastanza grandi, come 2000 oggetti ciascuno? È una soluzione scalabile? – zumzum

+0

Vale la pena spiegare perché si userebbe NSSet per motivi di efficienza! Il codice che utilizza NSSets eseguirà più velocemente (migliore efficienza di runtime) rispetto all'equatore di ciclo for. – occulus