簡體   English   中英

遞歸方法不起作用-ArrayList <String>

[英]Recursive method doesn't work - ArrayList<String>

我對遞歸方法有問題,該方法將XML文件的所有元素都放在ArrayList中

<?xml version="1.0"  encoding="iso-8859-1"?>
<country>
  <name> France </name>
  <city> Paris </city>
  <region>
     <name> Nord-Pas De Calais </name>
     <population> 3996 </population>
     <city> Lille </city>
  </region>
  <region>
     <name> Valle du Rhone </name>
     <city> Lyon </city>
     <city> Valence </city>
  </region>
 </country>

但是我的功能不能完全完成(獲取所有元素):結果是[國家,名稱,城市,區域,區域],但是我想獲取所有元素[國家,名稱,城市,區域,名稱,人口,區域,name,city,city],我認為遞歸調用的位置不正確,這是我的代碼

public static ArrayList<String> TreeToArray (Node node)
{
    ArrayList<String> ArrayNoeud = new ArrayList<String> ();

   ArrayNoeud.add(node.getNodeName());


    NodeList nl = node.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
      Node n = nl.item(i);

      if (n instanceof Element)
      {
           ArrayNoeud.add(n.getNodeName());

      }

    TreeToArray(n);
    }


    return ArrayNoeud;  



}

您正在遞歸,但是沒有將返回值分配給任何東西。

代替

 TreeToArray(n);

嘗試這個:

 ArrayNoeud.addAll( TreeToArray(n) );

您不使用遞歸結果就拋出了遞歸結果。 您應該添加如下內容:

ArrayNoeud.addAll(TreeToArray(n)); // Didn't notice it was java :) AddRange is C#

另外,變量名應以小寫字母開頭。

看到英語法語復合詞(不是抱怨)總是很奇怪:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM