Actualmente estoy enumerando elementos NSMutableArray
(o NSMutableSet
) para buscar duplicados y eliminarlos.Crear NSMutableArray o NSMutableSet único
Por ejemplo, si la matriz/conjunto tiene valores [@"a", @"b", @"b", @"c"]
, el resultado final debería ser [@"a", @"b", @"c"]
.
Dado que estoy comparando NSStrings
, estoy usando el método isEqualTo:
para comprobar si las cadenas son iguales.
¿Hay una manera más eficiente de eliminar entradas duplicadas que recorrer todas y verificar si existe duplicado?
¡Gracias, eso funcionó! Hice esto para obtener elementos únicos en la matriz: // agregar al conjunto para verificar los nombres de elementos únicos NSSet * uniqueNames = [NSSet setWithArray: names]; \t // devolver los datos a la matriz names = [[NSMutableArray alloc] initWithArray: [uniqueNames allObjects]]; – Rudi
La forma más canónica de volver a los nombres de la matriz sería: id names = [[uniqueNames allObjects] retain]; // si desea conservar los nombres o id names = [uniqueNames allObjects]; // si no desea conservar la propiedad de la matriz –
@BarryWark, ¿no sería O (n) para la iteración? – Peres