-5

次のように2つの配列があります

  firstArray={1,2,3,5,6,8,9,10,11} ;
  secondArray={1,2,3,4,7,8,10} ;

これら2つの配列から、結果の配列を次のように取得する必要があります:

  resultant ={1,2,3,4,5,6,7,8,9,10,11};

どうすればこれを達成できますか。任意の提案をしてください。

4

2 に答える 2

4

行うには非常に多くの方法があります:

目的の結果を生成するには、2 つがマージされたら配列を並べ替える必要があります。

基本的な方法から始めます:

NSArray *firstArray=@[@1,@2,@3,@5,@6,@8,@9,@10,@11];
NSArray *secondArray=@[@1,@2,@3,@4,@7,@8,@10];

NSMutableArray *merged=[NSMutableArray arrayWithArray:firstArray];
for (id element in secondArray) {
    if (![merged containsObject:element]) {
        [merged addObject:element];
    }
}

NSLog(@"Merged %@",merged);

使用するSet

NSSet *firstSet=[NSSet setWithArray:firstArray];
NSSet *secondSet=[NSSet setWithArray:secondArray];

NSMutableSet *unionFirstSecondSet=[NSMutableSet new];
[unionFirstSecondSet unionSet:firstSet];
[unionFirstSecondSet unionSet:secondSet];

NSLog(@"Merged %@",unionFirstSecondSet);

使用するDictionary

NSMutableDictionary *mergeDict=[NSMutableDictionary dictionaryWithObjects:firstArray forKeys:firstArray];
for (id element in secondArray) {
    [mergeDict setObject:element forKey:element];
}
NSArray *mergedArray=[mergeDict allKeys];

NSLog(@"Merged %@",mergedArray);

いくつかの配列 API 調整の使用

NSMutableArray *mergedArray=[[NSMutableArray alloc]initWithArray:firstArray];
[mergedArray addObjectsFromArray:secondArray];
for (id object in secondArray) {
    [mergedArray removeObjectIdenticalTo:object];
}
[mergedArray addObjectsFromArray:secondArray];

NSLog(@"Merged %@",mergedArray);
于 2013-01-18T13:14:01.277 に答える
0
NSMutableSet * wants = [NSMutableSet setWithArray:firstArray];
NSMutableSet * union = [[NSMutableSet setWithArray:secondArray] unionSet:wants];

NSMutableArray *array = [NSMutableArray arrayWithArray:[union allObjects]];
于 2013-01-18T12:47:03.073 に答える