2013-07-17 19 views
5

Supponiamo di avere un NSArray con duplicati @[1,2,3,1,1,2,4,5,6];Trova duplicati in NSArray

Trova tutti i duplicati; questo può essere in pseudocodice. Si tratta più di una domanda sull'algoritmo che di un framework Foundation (senza l'uso della domanda NSSet).

+2

Dai un'occhiata alla NSCountedSet. È possibile creare uno di quelli dall'array, quindi eseguire il ciclo e vedere quelli con un conteggio superiore a 1. – rdelmar

+0

Non ho mai saputo che NSArray può memorizzare direttamente i valori Integer. : O –

risposta

12

Utilizzare un NSCountedSet e stampare solo gli elementi che restituisce un numero> 1 per countForObject: metodo

consultare this per ulteriori informazioni

19

come descritto @Lithu, utilizzare NSCountedSet, vedere il codice di seguito.

NSArray *arr = [[NSArray alloc]initWithObjects:@(1),@(1),@(2), @(1),nil]; 
NSCountedSet *cs = [[NSCountedSet alloc] initWithArray:arr]; 
NSLog(@"object count greater than 1 are"); 
for(NSNumber *num in cs){ 
    if([cs countForObject:num]>1) 
    NSLog(@"%@",num); 
} 
+0

È fantastico! :) – Hemang