如何只使用一个for循环删除数组中的重复项?

时间:2015-05-14 07:36:24

标签: ios data-structures

NSArray *inputArray = @[11, 45, 54, 32, 11, 56, 45, 76, 23, 87, 54, 45];
NSArray *outputArray = @[11, 45, 54, 32, 56, 76, 23, 87];

如果没有排序,我如何在Objective C中实现这一点,因为排序使用一个for循环。

4 个答案:

答案 0 :(得分:1)

如果您关心排序,可以创建一个新的可变数组,遍历旧数组中的每个对象,只有在它尚不存在的情况下才添加它:

NSMutableArray *uniqueItems = [NSMutableArray array];
for (id item in allItems)
if (![uniqueItems containsObject:item])
    [uniqueItems addObject:item];

如果没有,只使用一套就更简单了:

NSSet *uniqueItems = [NSSet setWithArray:allItems];

答案 1 :(得分:0)

class LoginViewController: UIViewController <UITextFieldDelegate>

答案 2 :(得分:0)

试试这个:

NSArray *inputArray = @[11, 45, 54, 32, 11, 56, 45, 76, 23, 87, 54, 45];
NSArray *outputArray = [inputArray valueForKeyPath:@"@distinctUnionOfObjects.self"];

希望它能帮助!!

答案 3 :(得分:0)

providerName="System.Data.EntityClient"