-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 回答