私は以下の2つの配列を持っています。すなわち、10個のIDを有するアレイAと、300個のIDを有するアレイBと、対応するすべてのデータとを含む。別の配列からの配列の問い合わせ
私は、アレイA内のすべてのエントリにだけループ配列B内のすべてのエントリをできたが、これは少し重い見える配列Aに記載されているidを持つBからのすべてのデータ
を取得したいですそのような単純な仕事のために。この場合、どのようなソリューションが最適でしょうか?
Thnx!
私は以下の2つの配列を持っています。すなわち、10個のIDを有するアレイAと、300個のIDを有するアレイBと、対応するすべてのデータとを含む。別の配列からの配列の問い合わせ
私は、アレイA内のすべてのエントリにだけループ配列B内のすべてのエントリをできたが、これは少し重い見える配列Aに記載されているidを持つBからのすべてのデータ
を取得したいですそのような単純な仕事のために。この場合、どのようなソリューションが最適でしょうか?
Thnx!
おそらくuse a predicate(、bがあなたの配列です):あなたの配列内のオブジェクトは、文字列のような単純なものであればそれだけでうまくいくかもしれない
NSPredicate* filter = [NSPredicate predicateWithFormat: @"self IN %@", a];
NSArray* result = [b filteredArrayUsingPredicate: filter];
、けれども。
配列を使用している場合は、そうしないとどうやってやるのかわかりません。正しい要素にアクセスする唯一の方法は、配列をループすることです。
文法的に間違ったタイトルになる小さなタイトルの編集をやめてください。これらの大量の一括編集を行う場合は、擬似タグを取り除いた後に余分な2秒間をとり、タイトルを大文字にして、結果のタイトルが実際に意味をなさないことを確認します。 – meagar
確かにそれをします。ありがとうございました。私は文法がもっと間違っているのを見ていません。 –
タイトルの最初の単語が大文字であることを確認してください。可能であれば、タイトルを質問にします。 **を行う代わりに**を行う方法
整列された配列が必要ない場合は、はるかに高速な検索時間(O(1)に強いバイアス)を持つハッシュテーブル(NSSetなど)に切り替えることができます。それ以外の場合は、配列全体をループして、すべてのメンバーをチェックしなければなりませんでした。
配列Bを塗りつぶしているときは、代わりにdictionary
にすることができます。 ids
がunique
であるとすると、配列Aのキーのオブジェクトの値を配列Bから取得できます。これはループを回避し、ハッシュテーブルと同等のソートです。
戻り値には、特定のunique
idの対応するデータが格納されます。
素晴らしい、これが何を探していたのですか – Jos