0

我有一些数组,所有数组都有冗余字符串。现在我必须从 then 数组中删除多余的字符串,但在我的场景中我买不起蛮力技术。有什么有效的方法可以从数组中删除冗余值?

4

2 回答 2

1

取决于你到底需要什么。如果您需要一个包含所有输入数组值且不重复的新数组,您可以将所有对象添加到 NSSet 中。一个集合将忽略添加的重复项。

如果您需要排除重复项的原始数组,最好的方法是对它们中的每一个进行排序,然后对它们中的每一个进行递归,删除重复项。

于 2012-11-14T14:01:41.537 回答
1

NSSet 的问题在于使用了 isEqual 和 hash 方法。一些替代方案:

1. 重写 NSString 并实现 hash 和 isEqual:

这种情况下,如果在 isEqual 方法中返回 caseInsensitiveCompare 的结果,您将获得不重复的集合;

1. 将所有字符串大写并继续创建集合。

于 2012-11-14T20:31:53.753 回答