Objective-C里如何从NSMutableArray中高效移除重复元素?

2026-04-16 22:282阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计306个文字,预计阅读时间需要2分钟。

Objective-C里如何从NSMutableArray中高效移除重复元素?

我有从移动数组中删除重复对象的难题。我已经尝试了这些:

noDuplicates=_personalHistory.personalHistory;for (int i=[noDuplicates count] - 1; i > 0; i--){ if ([noDuplicates indexOfObject:[noDuplicates objectAtIndex:i]] !=i) { [noDuplicates removeObjectAtIndex:i]; }}

我有从移动数组中删除重复对象的问题.
我已经尝试了这些:

noDuplicates = _personalHistory.personalHistory; for (int i=[noDuplicates count]-1; i>0; i--) { if ([noDuplicates indexOfObject: [noDuplicates objectAtIndex: i]]<i) [noDuplicates removeObjectAtIndex: i]; } for (PersonalHistory_artikels *e in _personalHistory.personalHistory) { if (![noDuplicates containsObject:e]) { NSLog(@"Dubplicates"); [noDuplicates addObject:e]; } } for (i=0; i<_personalHistory.personalHistory.count; i++) { PersonalHistory_artikels *test = [_personalHistory.personalHistory objectAtIndex:i]; for (j=0; j<_personalHistory.personalHistory.count; j++) { PersonalHistory_artikels *test2 = [_personalHistory.personalHistory objectAtIndex:j]; if (! [test.nieuwsTITLE_personal isEqual:test2.nieuwsTITLE_personal]) { NSLog(@"Add test = %@", test.nieuwsTITLE_personal); [noDuplicates addObject:test]; } } }

但上面没有一个给我正确的阵列.最后一个是最好的,但它仍显示重复值.有人可以帮我解决这个问题吗?
非常感谢你.

Objective-C里如何从NSMutableArray中高效移除重复元素?

只需将数组转换为NSSet,然后再返回.一个集合不能设计重复.

编辑:

请注意,集合没有排序顺序.因此,您可以更便宜并放弃订单,或者进行稍微昂贵的操作但保留订单.

NSArray *hasDuplicates = /* (...) */; NSArray *noDuplicates = [[NSSet setWithArray: hasDuplicates] allObjects];

本文共计306个文字,预计阅读时间需要2分钟。

Objective-C里如何从NSMutableArray中高效移除重复元素?

我有从移动数组中删除重复对象的难题。我已经尝试了这些:

noDuplicates=_personalHistory.personalHistory;for (int i=[noDuplicates count] - 1; i > 0; i--){ if ([noDuplicates indexOfObject:[noDuplicates objectAtIndex:i]] !=i) { [noDuplicates removeObjectAtIndex:i]; }}

我有从移动数组中删除重复对象的问题.
我已经尝试了这些:

noDuplicates = _personalHistory.personalHistory; for (int i=[noDuplicates count]-1; i>0; i--) { if ([noDuplicates indexOfObject: [noDuplicates objectAtIndex: i]]<i) [noDuplicates removeObjectAtIndex: i]; } for (PersonalHistory_artikels *e in _personalHistory.personalHistory) { if (![noDuplicates containsObject:e]) { NSLog(@"Dubplicates"); [noDuplicates addObject:e]; } } for (i=0; i<_personalHistory.personalHistory.count; i++) { PersonalHistory_artikels *test = [_personalHistory.personalHistory objectAtIndex:i]; for (j=0; j<_personalHistory.personalHistory.count; j++) { PersonalHistory_artikels *test2 = [_personalHistory.personalHistory objectAtIndex:j]; if (! [test.nieuwsTITLE_personal isEqual:test2.nieuwsTITLE_personal]) { NSLog(@"Add test = %@", test.nieuwsTITLE_personal); [noDuplicates addObject:test]; } } }

但上面没有一个给我正确的阵列.最后一个是最好的,但它仍显示重复值.有人可以帮我解决这个问题吗?
非常感谢你.

Objective-C里如何从NSMutableArray中高效移除重复元素?

只需将数组转换为NSSet,然后再返回.一个集合不能设计重复.

编辑:

请注意,集合没有排序顺序.因此,您可以更便宜并放弃订单,或者进行稍微昂贵的操作但保留订单.

NSArray *hasDuplicates = /* (...) */; NSArray *noDuplicates = [[NSSet setWithArray: hasDuplicates] allObjects];