我有一个问题。是否有一个简单的解决方案来迭代列表内部和列表内部的列表? 所以我的观点是我彼此之间的列表很少(基于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;。
答案 0 :(得分:1)
DeeV对每个类重复各自列表提出了一个很好的建议。
作为使用Car类的客户端,您可能希望获得它包含的所有Some2。如果你这样做:
car.getDoors().getParts().get...
你暴露了Car类的内部。一个更清洁的解决方案是在Car类中使用以下方法:
public List<Some2> getSome2s()
这样,如果Car的内部更改(可能使用不同的Collection类型),只要仍然返回Some2s列表,您的客户端代码就不会中断。
答案 1 :(得分:0)
没有比嵌套for循环更简单的方法。如果您想要更快的速度,请尝试使用不同的结构,例如地图。
答案 2 :(得分:0)
在您能够递归到叶子并将它们聚合在列表中之后,首先使用您的类实现复合模式。