我正在做一個程序誰比較兩個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