我有一个文档,我正在搜索特定的实例,但是这些实例是由用户指定的,并且有多个实例。除了for循环中的for循环针对数组搜索Nodelist之外,是否有一种方法不让系统陷入困境呢?还是更简单的方法?
到目前为止,我的代码在抽象上如下所示:
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();
}
}
}
}谢谢你能提供的任何帮助。
发布于 2013-09-27 05:46:55
您可以使用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))) {发布于 2013-09-27 05:42:32
请参阅contains函数。
public void sortDoc(Document doc){
NodeList list = doc.getFirstChild().getChildNodes();
ArrayList<String> typeList = otherSorter.getTypes();
for(int i=0; i<list.getLength(); i++){
if(typeList.contains(list.item(i)) {
//Do Thing
}
}
}https://stackoverflow.com/questions/19043404
复制相似问题