Iphone 如何检查字符串是否等于目标c中的任意一个字符串

Iphone 如何检查字符串是否等于目标c中的任意一个字符串,iphone,objective-c,Iphone,Objective C,如果我有5个NSString,我想看看其中是否有相同的字符串,有没有比多次使用[string isEqualToString:string2]来测试每个字符串更快的方法?如果只有5个字符串,可能没有比逐个比较更快的方法了 但是,如果您有许多字符串,请使用所有字符串创建一个NSSet,然后使用-[containsObject:]检查该字符串是否是该集合的成员。如果您只有5个字符串,可能没有比逐个比较更快的了 但是,如果您有许多字符串,请使用所有字符串创建一个NSSet,然后使用-[contains

如果我有5个NSString,我想看看其中是否有相同的字符串,有没有比多次使用[string isEqualToString:string2]来测试每个字符串更快的方法?

如果只有5个字符串,可能没有比逐个比较更快的方法了


但是,如果您有许多字符串,请使用所有字符串创建一个NSSet,然后使用-[containsObject:]检查该字符串是否是该集合的成员。

如果您只有5个字符串,可能没有比逐个比较更快的了


但是,如果您有许多字符串,请使用所有字符串创建一个NSSet,然后使用-[containsObject:]检查字符串是否是该集合的成员。

键入更少或计算更少时的速度更快?我不介意键入,我指的是计算更少,键入更少或计算更少时的速度更快?我不介意键入,我说的少计算+1是一种好方法,但值得注意的是,NSSet的-containsObject:可能使用-isEqual:。NSString文档说,如果您知道两个对象都是字符串,-IsequalString:比-isEqual:快,那么-containsObject:可能根本就不快。-containsObject:如果字符串不在,则是一个-hash;如果字符串在,则是一个-hash和一个-isEqual:。调用-isEqualToString:每个字符串上有1-N个调用,平均为N/2。因此,除非字符串长度与N的顺序相同,因此如果只有5个字符串位,则无法比较它是常数算法还是线性算法。我创建了一个包含所有字符串的NSSet。有没有办法判断是否有重复的?还可以判断NSSet中的哪些条目是重复的吗?谢谢一套中从来没有重复的。查看文档中的方法,如+setWithObjects:和-[NSMutableSet addObject:]等,它们准确地解释了在一个集合中放置重复项时会发生什么。如果您需要知道您有多个相同值的副本,通常最好的答案是使用NSCountedSet,它跟踪每个元素的添加次数。+1是一个好方法,但值得注意的是,NSSet的-containsObject:可能使用-isEqual:。NSString文档说,如果您知道两个对象都是字符串,-IsequalString:比-isEqual:快,那么-containsObject:可能根本就不快。-containsObject:如果字符串不在,则是一个-hash;如果字符串在,则是一个-hash和一个-isEqual:。调用-isEqualToString:每个字符串上有1-N个调用,平均为N/2。因此,除非字符串长度与N的顺序相同,因此如果只有5个字符串位,则无法比较它是常数算法还是线性算法。我创建了一个包含所有字符串的NSSet。有没有办法判断是否有重复的?还可以判断NSSet中的哪些条目是重复的吗?谢谢一套中从来没有重复的。查看文档中的方法,如+setWithObjects:和-[NSMutableSet addObject:]等,它们准确地解释了在一个集合中放置重复项时会发生什么。如果您需要知道您有多个相同值的副本,通常最好的答案是使用NSCountedSet,它跟踪每个元素的添加次数。