菜鸟教程小白 发表于 2022-12-13 01:09:54

iphone - 如何合并两个 NSArray


                                            <p><p>我会知道如何合并两个包含一些重复的数组:
这是一个例子来说明我想要做什么:</p>

<pre><code>// Here is some dictionary which contain an unique &#34;id&#34; key.
NSDictionary *dico1 = [NSDictionary dictionaryWithObjectsAndKeys:
                     @&#34;11111111&#34;, @&#34;id&#34;, nil];
NSDictionary *dico2 = [NSDictionary dictionaryWithObjectsAndKeys:
                     @&#34;22222222&#34;, @&#34;id&#34;, nil];
NSDictionary *dico3 = [NSDictionary dictionaryWithObjectsAndKeys:
                     @&#34;33333333&#34;, @&#34;id&#34;, nil];
NSDictionary *dico4 = [NSDictionary dictionaryWithObjectsAndKeys:
                     @&#34;44444444&#34;, @&#34;id&#34;, nil];
NSDictionary *dico5 = [NSDictionary dictionaryWithObjectsAndKeys:
                     @&#34;55555555&#34;, @&#34;id&#34;, nil];

// And here is duplicates of the 2nd and 3td dictionary.
NSDictionary *dico2_bis = [NSDictionary dictionaryWithObjectsAndKeys:
                           @&#34;22222222&#34;, @&#34;id&#34;, nil];
NSDictionary *dico3_bis = [NSDictionary dictionaryWithObjectsAndKeys:
                           @&#34;33333333&#34;, @&#34;id&#34;, nil];
</code></pre>

<p>现在我有一个数组,其中包含一些字典:</p>

<pre><code>NSArray *currentArray = [NSArray arrayWithObjects:
                         dico1, dico2, dico3, nil];
</code></pre>

<p>这是要与第一个合并的新数组,其中包含一些重复的新“数据”:</p>

<pre><code>NSArray *tempArray = [NSArray arrayWithObjects:
                      dico2_bis, dico3_bis, dico4, dico5, nil];
</code></pre>

<p>在最后阶段,我的目标是创建一个数组,其中包含所有字典并删除了所有重复项</p>

<pre><code>NSArray *finalArray = [NSArray arrayWithObjects:
                     dico1, dico2, dico3, dico4, dico5, nil];
</code></pre>

<p><br/>
我不知道什么是最有效的解决方案,合并必须很快。我是否必须实现快速枚举或基于 block 的枚举算法,或者可能是 NSPredicate 实现?
我已经搜索过 NSPredicate,但我还没有找到用其他数组过滤数组的方法 =/<br/>
任何帮助将不胜感激。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你不使用 NSArrays,你需要的是一个自动消除“重复”的集合(“doubloon”是西类牙金币)。因此,您只需使用 NSMutableSet 并将您的 NSDictionaries 添加到其中。</p>

<pre><code>NSMutableSet aSet = ;
;
....
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 如何合并两个 NSArray,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/14955250/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/14955250/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 如何合并两个 NSArray