下面的test()
函数检查元素是否与预定义的命名空间NSURI
匹配:
class MyClass {
private static final String NSURI = "http://example.com/mynamespace";
...
public test(Element e) {
return NSURI.equals(e.getNamespaceURI());
}
}
字符串比较是否有效?我必须迭代许多节点,可能具有不同的命名空间。但是,每次进行字符串比较似乎都很浪费。
是否有更快的方法进行命名空间比较?
答案 0 :(得分:0)
与VGR一样,您很可能会遇到String
与每种方法的比较。但是,有一个选项可以可能。
如图here所示,Arrays#equals(char[], char[])
是内在的,这意味着它调用本机代码(或程序集)来比较数组,使其成为快得多的替代方案。请记住,JDK 9将在今后一周内发布,此功能将被修改,但它最终仍将是固有的。
因此,如果您能够将每个命名空间收集到一个char[]
中,那么将它们进行比较可能比直接进行String
比较更快。
最有可能的是,这最终会变得过度,但值得一试!