В настоящее время я перечисляю через NSMutableArray
(или NSMutableSet
) элементы, чтобы найти дубликаты и удалить их.Сделать уникальный NSMutableArray или NSMutableSet
Например, если массив/набор имеет значения [@"a", @"b", @"b", @"c"]
, конечный результат должен быть [@"a", @"b", @"c"]
.
Поскольку я сравниваю NSStrings
, я использую метод isEqualTo:
, чтобы проверить, равны ли строки.
Есть ли более эффективный способ удаления дубликатов записей, чем для их прокрутки и проверки наличия дубликата?
Спасибо, это сработало! Я сделал это, чтобы получить уникальные элементы в массиве: // добавить в набор для проверки уникальных имен элементов NSSet * uniqueNames = [NSSet setWithArray: names]; \t // возвращаем данные обратно в массив names = [[NSMutableArray alloc] initWithArray: [uniqueNames allObjects]]; – Rudi
Более пустым способом вернуться к именам массивов будет: id names = [[uniqueNames allObjects] сохранить]; // если вы хотите сохранить имена или id names = [uniqueNames allObjects]; // если вы не хотите сохранять право собственности на массив –
@BarryWark, не будет ли это O (n) для итерации? – Peres