Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
4年前关闭。
我正在优化使用
因此,如果您不需要检查两个字符串的长度,那么您肯定知道它们没有引用相同的内存地址,并且第二个字符串永远不会为空,因此
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
4年前关闭。
我正在优化使用
equalsIgnoreCase
的一段代码,它可以处理数百万条记录。请任何人给我一些见解,在Java中equalsIgnoreCase
和regionMatches
中的哪一个是更快,更有效的。 最佳答案
如果检查equalsIgnoreCase
的实现,则仅依赖regionMatches
:
public boolean equalsIgnoreCase(String anotherString) {
return (this == anotherString) ? true
: (anotherString != null)
&& (anotherString.value.length == value.length)
&& regionMatches(true, 0, anotherString, 0, value.length);
}
因此,如果您不需要检查两个字符串的长度,那么您肯定知道它们没有引用相同的内存地址,并且第二个字符串永远不会为空,因此
regionMatches
的性能会稍好一些,因为您避免检查数百万次。但是,现实中,您总是需要检查一下,因此请坚持使用equalsIgnoreCase
。即使您拥有数百万个字符串,差异也很小,无法察觉。10-08 11:27