嵌套 ArrayList

3

我有一个如下的三层嵌套的ArrayList:

   ArrayList<String> rowContents = new ArrayList();
   ArrayList<ArrayList<String>> rows;
   ArrayList<ArrayList<ArrayList<String>>> page;

在代码中,在不同的循环内,arrayList将按以下方式填充:
    rowContents.add("some content");
    rows.add(rowContents);
    page.add(rows);

这样使用三层嵌套的ArrayList是否可行?还是有更好的方法?


有更好的方法吗?针对什么?您的实际问题是什么? - user1907906
6
当你有3层嵌套的ArrayList时,这可能是设计不良的迹象。 - Maroun
一个非常糟糕的设计.. 使用类来代替。 - Vineet Singla
@LutzHorn - 更好的处理(或修订)嵌套ArrayList设计的方法。 - janenz00
2
是的,你可以这样做,但这并不是一个好主意。 ;) - Peter Lawrey
@PeterLawrey - 谢谢,我也是这么想的。只是想确认一下 :-) - janenz00
2个回答

11

我建议为页面和行创建类。

在内部,它们可以通过列表来持有它们的子元素:

public class Row {
    List<String> rowContent;
    Page parent;

    //...
}



public class Page {
    List<Row> rows;

    //...
}

1
+1 表示创建类。你不觉得它像树形结构吗?创建树对象非常好。 - Vineet Singla

1
如何为页面和行添加一些类?这样更容易维护!
public class Page{

private List<Row> rows = new ArrayList<Row>();

}

public class Row{

/* do some crazy stuff in it*/

}


/* all pages*/
List<Page> pages = new ArrayList<Page>();

for(Row row: pages.getRows()){
  /* do some crazy stuff with the content of the row */
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接