次のように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};
どうすればこれを達成できますか。任意の提案をしてください。
次のように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};
どうすればこれを達成できますか。任意の提案をしてください。
行うには非常に多くの方法があります:
目的の結果を生成するには、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);
NSMutableSet * wants = [NSMutableSet setWithArray:firstArray];
NSMutableSet * union = [[NSMutableSet setWithArray:secondArray] unionSet:wants];
NSMutableArray *array = [NSMutableArray arrayWithArray:[union allObjects]];