我有这些类过滤器嵌套对象的Java 8
class LivingOrganism
{
List<Domain> listOfDomain;
}
class Domain
{
List<Species> listOfSpecies;
}
class Species
{
List<Color> listOfColor;
}
class Color
{
String color;
}
从顶部到底部,它不会有任何重复的条目,直到我达到的颜色。所以有些物种即使在另一个领域也可以具有相同的颜色。一种物种可以有不同的颜色。
考虑到家长LivingOrganism,我想过滤一个具有某种颜色的listOfDomain。
我做了一个经典的嵌套for循环,但有4巢,代码看起来不漂亮。我试图使用java 8 flatmap和过滤器来获得更优雅的代码,但是我花了数小时没有成功。
I even made a badly drawn graph in MSPaint
比方说,我想List<Species>
,可以是蓝色或List<Domain>
与所有的Species
可以是蓝色的。我如何继续?
任何帮助,将不胜感激
_“我花了几个小时没有成功”_请编辑问题,包括你最好的尝试,然后解释你为什么被卡住,人们将能够给出更好的解释。另外,请澄清预期产出应该是什么,列表或列表或其他? –
以某种颜色过滤物种的方式开始。使用它,找到一种按给定物种过滤域的方法。一旦你得到了模式,更多的步骤进入外部收藏将是容易的。 – 9000
变量名真的不应该反映实现('listOf ...')。当你意识到这一点时,比如'Species'不应该在给定的'Domain'中出现一次以上,你可能会想把这个集合实现为'Set'而不是'List',名字不会再一次匹配实现。那很糟。为其域名目的命名变量,而不是它们的实现。 (当你决定一个'Species'只存在于一个'Domain'中时,你可能会做出更激进的改变)。 –