我有一些数组,所有数组都有冗余字符串。现在我必须从 then 数组中删除多余的字符串,但在我的场景中我买不起蛮力技术。有什么有效的方法可以从数组中删除冗余值?
问问题
228 次
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 回答