Получение уникальных чисел из двух массивов - PullRequest
2 голосов
/ 26 августа 2011

Если у меня есть пара NSArrays , заполненных целыми , или NSNumbers , например:

A: { 12, 23, 45, 56, 67, 78, 99, 234 }
B: { 12, 56, 78, 99, 454, 512 }

Как мневывести массив с номерами, которые находятся в A, но не в B, например

{ 23, 45, 67, 234 }

Ответы [ 2 ]

14 голосов
/ 26 августа 2011

То, что вы связываете, является чисто заданной операцией. Таким образом, вы можете использовать NSSet здесь. Вы должны сделать minusSet:, чтобы получить желаемый результат.

NSMutableSet *resultSet = [NSMutableSet setWithArray:A];
NSSet *setB = [NSSet setWithArray:B];

// This is what you need!
[resultSet minusSet:setB];

Array *result = [resultSet allObjects];
2 голосов
/ 26 августа 2011

Создайте NSMutableArray с именем C. Выполните цикл над A, который пытается найти каждый из его элементов в B (используя [B containsObject:elemOfA], который просто отправляет сообщение -isEqual:elemOfA каждому члену B). Если элемент найден, ничего не делать; если элемент не найден, добавьте его в C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...