在列表java中列出列表内的列表

时间:2014-11-07 22:21:53

标签: java list

我有一个问题。是否有一个简单的解决方案来迭代列表内部和列表内部的列表? 所以我的观点是我彼此之间的列表很少(基于xml unmarshall),我有时不知道结构有多深。

Exsample:

class Car{
 private List<Door>
 }

class Door{
 private List<Parts>
 }
class Parts{
 private List<Some1>
 }
 }
class Some1{
 private List<Some2>
 }

那么如何在不知道是否有列表的情况下从Car迭代到Some2,或者在#34;好的方式中是空的&#34;?我的意思是没有5次嵌套&#34;对于&#34;循环混合了另外6&#34;如果&#34;。

3 个答案:

答案 0 :(得分:1)

DeeV对每个类重复各自列表提出了一个很好的建议。

作为使用Car类的客户端,您可能希望获得它包含的所有Some2。如果你这样做:

car.getDoors().getParts().get...

你暴露了Car类的内部。一个更清洁的解决方案是在Car类中使用以下方法:

public List<Some2> getSome2s()

这样,如果Car的内部更改(可能使用不同的Collection类型),只要仍然返回Some2s列表,您的客户端代码就不会中断。

答案 1 :(得分:0)

没有比嵌套for循环更简单的方法。如果您想要更快的速度,请尝试使用不同的结构,例如地图。

答案 2 :(得分:0)

在您能够递归到叶子并将它们聚合在列表中之后,首先使用您的类实现复合模式。