ページにツリー ビューを表示したい。そのために、List オブジェクトを用意します。リスト オブジェクトにはさらにいくつかのリスト オブジェクトが含まれます。ネストされたレベルがいくつになるかわかりません。リストをナビゲートする方法を教えてください。
表示したいサンプルデータは
教育
- 数学
- 三角法
- 化学
- 物理
- 核物理学
- 化学
- 物理
- 社交
- 数学
スポーツ
- クリケット
- フットボール
- テクノロジー
- 携帯電話
- コンピュータ
- ラップトップ
- パソコン
ページにツリー ビューを表示したい。そのために、List オブジェクトを用意します。リスト オブジェクトにはさらにいくつかのリスト オブジェクトが含まれます。ネストされたレベルがいくつになるかわかりません。リストをナビゲートする方法を教えてください。
表示したいサンプルデータは
教育
スポーツ
以下に示すように、再帰的な方法が必要です。
void printList(Collection myList) {
for(Object o : myList) {
if (Collection.class.isAssignableFrom(o.getClass())) {
printList((Collection)o);
}
else {
print o;
}
}
}
再帰関数を使用する必要があります:
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);