1

ちょっとした質問です(大したことではありませんが、好奇心をそそられました)。

NSDictionary2 つのキーと値のペアがあるとします。

  1. 最初のキー値は、100 または 1000 または 10000 (または任意の数) のディクショナリ オブジェクトの配列です。
  2. 2 番目のキー値は、配列のカウントを正確に格納するために維持される文字列オブジェクトです (これはオブジェクトである可能性がありますが、精神的にNSNumber維持することができます)。NSStringJSON

だから、次のようなもの:

{
    "keyValues": [
        {
            "key_1": "value_1"
        },
        {
            "key_2": "value_2"
        },
        ...
        ...
        {
            "key_N": "value_N"
        }
    ],
    "keyCount": "N" //where 'N' 100 or 1000 (basically the count of the array)
}

さて、私の質問は、どちらがより効率的かということです(たとえ非常にわずかなマージンであっても)

  1. int count = [[myDictionary valueForKey:@"keyCount"] intValue];
    また
  2. int count = [[myDictionary valueForKey:@"keyValues"] count];

注: これは基本的な例に過ぎないので、ご容赦ください。

4

1 に答える 1

3

すでに JSON を解析したと仮定すると、この質問への回答によると、countは に対して一定であるためNSMutableArraycount少なくとも処理時間に関しては効率的であるはずです。メモリの面で間違いなく効率的であり、さらに重要なことに、 count を使用することは冗長ではなく、保守が容易です。

JSON 全体を解析したくない場合は、もちろん状況が異なります。オブジェクトの数だけを取得するには、配列を作成する必要はありません。カウントを別々に保存すると、O(1)複雑なカウントが得られ、配列の解析はO(n). 大きな配列の場合、これは顕著な違いを生む可能性があります。

于 2013-10-28T05:49:45.733 に答える