我有這些類過濾器嵌套對象的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'中時,你可能會做出更激進的改變)。 –