我正在做一个程序谁比较两个XML文档,并比较名称标签,以找到重复的数据。当发现我添加在一个数组列表中。但它增加了两次。我寻找一些错误,但我无法看到。还有就是代码:Arraylist添加两次相同的信息
public void verificaChave(){
NodeList v1 = this.doc1.getElementsByTagName("name");
NodeList v2 = this.doc1.getElementsByTagName("name");
for(int i= 0; i<v1.getLength();i++)
{
found = false;
for(int j = 0; j<v2.getLength();j++)
{
if(v1.item(i).getTextContent().equalsIgnoreCase(v2.item(j).getTextContent()))
{
if(!found)
{
found = true;
}
else
{
repetiu.add(v1.item(i).getTextContent());
}
}
}
}
this.saveRepeat();
}
也许我在这里,但代码没有意义:1)如果你没有在任何地方使用它,你为什么需要'找到'? 2)'v1'和'v2'指向完全相同的对象 - 也许你打算声明'v2'指向'doc2'? 3)你有n^2次迭代:我只能猜测你想要第二个循环(假设它运行在相同的输入上)从'j = i + 1;'开始,以便不会多次比较相同的对象。 – alfasin 2014-10-31 03:48:06
你是绝对正确的,关于发现我做了这段代码来查看两个XML文档,但知道我只是在比较一个,我做了一些更改,但我忘了这一个,我又改了它,它的工作。非常感谢!! – 2014-10-31 04:04:51