<div>Hello!š</div><div><div>š</div><div>I read source codešequalsIgnoreCase(...) inšString class<span>š</span><span data-align="21:33">and saw that</span><span> </span><span data-align="34:39">it is not</span><span> </span><span data-align="40:49">optimal. This method check length and call regionMatches(...)ššwith 'constant' values</span></div><div>š</div><div><a href="http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1095">http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1095</a>š</div><div><p>...</p><p>š š&& (anotherString.value.length == value.length)<br />š š && regionMatches(true, 0, anotherString, 0, value.length);<br />...</p><p>ButšregionMatches(...) checkš'constant' values</p><p><a href="http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1338">http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1338</a></p><p>// Note: toffset, ooffset, or len might be near -1>>>1.<br /> if ((ooffset < 0) || (toffset < 0)<br />š š || (toffset > (long)value.length - len)<br />š š || (ooffset > (long)other.value.length - len)) {<br />š return false;<br /> }</p><p>and increment equalent variables to==pošin loop</p><p><a href="http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1344">http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1344</a></p><p>while (len-- > 0) {</p><p>š char c1 = ta[to++];</p><p>š char c2 = pa[po++];</p><p>...</p><p>}</p><p>and use if(...) in while loop</p><p><a href="http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1349">http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/lang/String.java#l1349</a></p><p>if (ignoreCase) {</p><p>...</p><p>}</p><p>š</p><p><span data-align="32:37"><span data-align="0:10">May be</span><span> </span><span data-align="11:31">can create optimized</span>šregionMatches(...) for use inšequalsIgnoreCase(...)?</span></p></div></div>