2012-08-29 14 views
16

Mam dwie tablice. Tablica 1 zawiera 15 obiektów, a tablica2 zawiera 4 obiekty. Istnieją dwie wspólne obiekty z obu tablic, po prostu chcę uzyskać wynikową tablicę tych 2 obiektów.jak przeciąć dwie tablice w celu C?

To powinno być jak skrzyżowanie dwóch zestawów, ale jak zrobić w celu C dla tablicy ..? Proszę pomóż. dzięki.

+4

Co o stworzenie 2 zestawy ze swoimi tablicami a następnie powołując się na skrzyżowanie nad zestawów? –

+1

zobacz ten http://stackoverflow.com/a/1475656/1030951 – HarshIT

+0

Dzięki @Hadley i Ricard, otrzymałem rozwiązanie filtrowania mojego wyniku za pomocą NSSet. Mam moją tablicę wyników .. !! – Dishant

Odpowiedz

47

Korzystanie NSMutableSet

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

Tutaj set1 powinien być NSMutableSet, ponieważ NSMutableSet ma rozszerzenie intersectSet metoda –

+2

jak dobrze to działa, jeśli te tablice są dość duże, jak 2000 obiektów każdy? Czy to skalowalne rozwiązanie? – zumzum

+0

Warto powiedzieć, dlaczego można używać NSSet ze względów wydajnościowych! Kod wykorzystujący NSSets będzie działał szybciej (lepsza wydajność runtime) niż equivelant pętli for. – occulus