【问题标题】:Iterate Nested list in java在java中迭代嵌套列表
【发布时间】:2012-09-11 11:29:05
【问题描述】:

我想在我的页面中显示一个树形视图。为此,我将有一个 List 对象。列表对象将包含更多列表对象。我不知道我会得到多少嵌套级别。所以请告诉我,如何浏览列表。

我要显示的示例数据是

  • 教育

    • 数学
      • 三角学
    • 科学
      • 物理
        • 核物理
      • 化学
    • 社交
  • 运动

    • 板球
    • 足球
  • 技术
    • 手机
    • 电脑
      • 笔记本电脑
      • 个人电脑

【问题讨论】:

  • 树视图从何而来? isit in xml from example?
  • 我需要得到那个表格数据库

标签: java collections for-loop tree


【解决方案1】:

你需要一个递归方法,如下所示:

void printList(Collection myList) {
   for(Object o : myList) {
      if (Collection.class.isAssignableFrom(o.getClass())) {
          printList((Collection)o);
      }
      else {
          print o;
      }
  }
}

【讨论】:

    【解决方案2】:

    你应该使用递归函数:

       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);
    

    【讨论】:

    • 你需要打印列表本身(父节点)
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2012-03-22
    • 2014-06-08
    • 2014-08-19
    相关资源
    最近更新 更多