Как исключить соединение 2 NSArrays? - PullRequest
2 голосов
/ 09 августа 2011

У меня есть 2 массива объектов (как NSArray), и я хочу получить массив объектов в первом, которых также нет во втором.

Ответы [ 2 ]

3 голосов
/ 09 августа 2011

См. NSMutableArray s -removeObjectsInArray: метод.

1 голос
/ 09 августа 2011

1) Неэффективное решение. запустить над одним массивом и вызвать каждый объект containsObject, если нет, добавить элемент, в противном случае взять следующий элемент

2) Более эффективно: сортируйте оба массива, а затем добавляйте их рядом. Сохраните ссылку на последний добавленный объект, а затем сравните следующие компоненты с этим элементом. Если ничего не найдено, вы можете добавить новый «последний» элемент.

3) Удалите все элементы из HashTable, затем возьмите следующие элементы следующего массива и проверьте, можете ли вы найти «равный» объект. В конце перестройте массив из HashTable

4) сбросить все элементы в NSSet и после этого перестроить массив из этого NSSet

...