-4

ページにツリー ビューを表示したい。そのために、List オブジェクトを用意します。リスト オブジェクトにはさらにいくつかのリスト オブジェクトが含まれます。ネストされたレベルがいくつになるかわかりません。リストをナビゲートする方法を教えてください。

表示したいサンプルデータは

  • 教育

    • 数学
      • 三角法
    • 化学
      • 物理
        • 核物理学
      • 化学
    • 社交
  • スポーツ

    • クリケット
    • フットボール
  • テクノロジー
    • 携帯電話
    • コンピュータ
      • ラップトップ
      • パソコン
4

2 に答える 2

4

以下に示すように、再帰的な方法が必要です。

void printList(Collection myList) {
   for(Object o : myList) {
      if (Collection.class.isAssignableFrom(o.getClass())) {
          printList((Collection)o);
      }
      else {
          print o;
      }
  }
}
于 2012-09-11T11:33:07.200 に答える
1

再帰関数を使用する必要があります:

   void display(Object item) {
       print(item);
       if (item instanceof List) 
           for (Object itemInList: (List) list) {
               display(itemInList);
           }
       }
   }

必要に応じて、たとえばインデントにレベルを使用できます。

   void printItem(Object item, int level) {
       for (int i=0; i<level; i++) System.out.print(" ");
       System.out.println(item);
   }

   void display(List list, int level) {
       printItem(list, level);
       if (item instanceof List) 
           for (Object itemInList: (List) list) {
               display(itemInList, level+1);
           }
       }
   }

   display(topLevelList, 0);
于 2012-09-11T11:31:57.743 に答える