2013-07-17 8 views
5

NSArrayと重複した@[1,2,3,1,1,2,4,5,6]があるとします。NSArrayで重複を見つけよう

すべての重複を見つけます。これは擬似コードで行うことができます。これは、Foundationフレームワーク(NSSetを使用しない)の質問よりも、アルゴリズムに関する質問のほうが多いです。 @Lithuは、以下のコードを参照して、NSCountedSetを使用し、説明したように

+2

NSCountedSetを見てください。配列からそれらの1つを作成し、ループスルーして、1より大きい数を持つものを見ることができます。 – rdelmar

+0

NSArrayがInteger値を直接格納できることはわかりませんでした。 :O –

答えて

12

NSCountedSet を使用してのみ> 1の数を返す要素を印刷countForObject:方法

詳細情報

19

ためthis参照します。

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

これは素晴らしいです! :) – Hemang

関連する問題