我有一个正在搜索特定实例的文档,但是这些实例是由用户指定的,并且不止一个。除了在for循环内搜索针对数组的Nodelist内的for循环外,还有没有一种我不会错过的方法?还是更简单的方法?
到目前为止,我的代码摘要如下:
public void sortDoc(Document doc){
NodeList list = doc.getFirstChild().getChildNodes();
ArrayList<String> typeList = otherSorter.getTypes();
for(int i=0; i<list.getLength(); i++){
for(int j=0; j<typeList.size(); j++){
if(list.item(i).getNodeName()==typeList.get(j)){
doTheThing();
}
}
}
}
谢谢你提供的所有帮助。
最佳答案
您可以使用List#contains(Object)
在ArrayList中检查节点名称。
for(int i=0; i<list.getLength(); i++){
if(typeList.contains(list.item(i).getNodeName())){
// Do Something.
}
}
也,
if(list.item(i).getNodeName()==typeList.get(j)) {
绝对不要使用上述
==
运算符进行字符串值比较。始终使用
equals()
方法进行字符串值比较,如下所示:if(list.item(i).getNodeName().equals(typeList.get(j))) {