0

いくつかの配列があり、すべての配列に冗長な文字列があります。今、私はその配列から冗長な文字列を削除する必要がありますが、私のシナリオでは力ずくのテクニックを買う余裕がありません。配列から冗長な値を削除する効率的な方法はありますか?

4

2 に答える 2

1

NSSetの問題は、isEqualおよびhashメソッドを使用することです。いくつかの選択肢:

1. NSStringをオーバーライドし、ハッシュとisEqualを実装します。

この場合、isEqualメソッドでcaseInsensitiveCompareの結果を返すと、重複することなくセットを取得できます。

1.すべての文字列を大文字にして、セットの作成に進みます。

于 2012-11-14T20:31:53.753 に答える
1

最終的に必要なものによって異なります。重複のないすべての入力配列値を含む新しい配列が必要な場合は、すべてのオブジェクトをNSSetに追加できます。セットは、追加された重複を無視します。

重複を除いた元の配列が必要な場合は、それぞれを並べ替えてから、それぞれを繰り返し処理して重複を削除するのが最善の方法です。

于 2012-11-14T14:01:41.537 に答える