下面的 test()
函数检查元素是否匹配预定义的命名空间 NSURI
:
class MyClass {
private static final String NSURI = "http://example.com/mynamespace";
...
public test(Element e) {
return NSURI.equals(e.getNamespaceURI());
}
}
字符串比较效率高吗?我必须迭代许多节点,可能具有不同的 namespace 。但是,每次都进行字符串比较似乎很浪费。
有没有更快的方法来进行 namespace 比较?
最佳答案
如 VGR 所述,您很可能会遇到每个方法的 String
比较。但是,有一种选择可能是可能的。
如图here , Arrays#equals(char[], char[])
是固有的,这意味着它调用 native 代码(或程序集)来比较数组,使其成为更快的替代方案.请记住,JDK 9 将在从今天开始的一周后发布,并且此功能将被修改,但它最终仍将是固有的。
因此,如果您能够将每个命名空间收集到一个 char[]
中,那么以这种方式比较它们可能比直接使用 String
更快比较。
很可能,这最终会变得矫枉过正,但值得一试!
关于java - java中如何高效匹配元素的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45221284/