Mat*_*ica 2 java regex string equals
假设我必须比较 Java 中的一些字符串对象,对于一个大容量程序,我必须像这样进行一百万次。字符串要么完全相同,要么不应该算作匹配。哪种方法使用更有效,等于(对象相等)或匹配(正则表达式)?一个例子:
String a = "JACK", b = "JACK", c = "MEG";
a.equals(b);//True
a.equals(c);//False
a.matches(b);//True
a.matches(c);//False
Run Code Online (Sandbox Code Playgroud)
这两种方法都给了我想要的结果,但我想知道考虑到大量处理,哪种方法更有效。
您可以通过获取大量字符串并在循环中比较它们来自己检查这一点。在循环之前和之后,您取当前系统时间,然后获得开始和结束时间的差异。请参见此处:运行时。但是您应该小心,因为结果可能因您的硬件而异。此外,了解 JVM 可能在后台进行的优化也很重要。这就是为什么您应该比较许多字符串并可能取平均值的原因
List<String> bigList = new List<String>(); // put many many values in this list
String pattern = "pattern";
long start = System.nanoTime();
for(int i=0;i<bigList.length;i++) {
bigList.get(i).equals(pattern); //in another program, check for matches(pattern)
}
long end = System.nanoTime();
System.out.println((end-start)/bigList.size()) // this is the average time
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |