本文介紹了我可以在循環中使用多個for循環嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試生成以下報告:
| Place Name | City or Town? | Country |
----------------------------------------------
| Place A | City | England |
| Place B | City | England |
| Place X | Town | England |
| Place Y | Town | England |
| Place Q | City | Germany |
| Place P | City | Germany |
| Place T | Town | Germany |
| Place W | Town | Germany |
生成此報告時,我傳遞了countryList
,每個國家/地區的cityList
如下所示:
for(Country country : countryList)
{
for(City city : country.getCityList())
{
generateRow(country, city);
}
}
另一方面,還有另一個(單獨的)列表保存城鎮,我需要在每個城市之后生成城鎮行,如上所示。在這個場景中,我認為唯一的方法是在城市循環之后使用第二個for循環,如下所示,但由于我從未在循環中使用過這種多循環(我多次使用層疊/嵌套,但不是這樣),我想澄清一下是否有更好的方案用于此場景。
for(Country country : countryList)
{
for(City city : country.getCityList())
{
generateRow(country, city);
}
// townList is a separate list, not in country or city list
for(Town town : townList())
{
generateRowForTown(town);
}
}
有沒有更好的解決辦法?
推薦答案
您的解決方案非常好。也就是說,您可以使用generateRow()
方法使Town
和City
都實現一些Liveable
或RowGenerator
接口或超類(名稱取決于要放在其中的內容)。這將允許您將Town
和City
實例存儲在單個List<RowGenerator>
字段或變量中,從而允許您在單個循環中處理這兩個實例。就性能而言,這不會有任何明顯的變化,但對于將來可能遇到的此類情況,這是一個需要考慮的選項。
這篇關于我可以在循環中使用多個for循環嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,