本文介紹了我可以在循環(huán)中使用多個(gè)for循環(huán)嗎?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我正在嘗試生成以下報(bào)告:
| 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 |
生成此報(bào)告時(shí),我傳遞了countryList
,每個(gè)國(guó)家/地區(qū)的cityList
如下所示:
for(Country country : countryList)
{
for(City city : country.getCityList())
{
generateRow(country, city);
}
}
另一方面,還有另一個(gè)(單獨(dú)的)列表保存城鎮(zhèn),我需要在每個(gè)城市之后生成城鎮(zhèn)行,如上所示。在這個(gè)場(chǎng)景中,我認(rèn)為唯一的方法是在城市循環(huán)之后使用第二個(gè)for循環(huán),如下所示,但由于我從未在循環(huán)中使用過(guò)這種多循環(huán)(我多次使用層疊/嵌套,但不是這樣),我想澄清一下是否有更好的方案用于此場(chǎng)景。
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);
}
}
有沒有更好的解決辦法?
推薦答案
您的解決方案非常好。也就是說(shuō),您可以使用generateRow()
方法使Town
和City
都實(shí)現(xiàn)一些Liveable
或RowGenerator
接口或超類(名稱取決于要放在其中的內(nèi)容)。這將允許您將Town
和City
實(shí)例存儲(chǔ)在單個(gè)List<RowGenerator>
字段或變量中,從而允許您在單個(gè)循環(huán)中處理這兩個(gè)實(shí)例。就性能而言,這不會(huì)有任何明顯的變化,但對(duì)于將來(lái)可能遇到的此類情況,這是一個(gè)需要考慮的選項(xiàng)。
這篇關(guān)于我可以在循環(huán)中使用多個(gè)for循環(huán)嗎?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,