考慮一個問題,我正在開發一個像Collection這樣的樹。Java中的懶惰集合
我的一個收藏的主要功能是跟蹤所有存儲的項目一個接一個,然後調用給定函數每個項目,直到已經遇到了一個給定標準(延遲集合)。
因此函數應具有以下特徵:
void Trace(function func, criteria crit)
{
item i = firstItem();
while (i != endItem())
{
i = nextItem();
func(i);
if (crit(i))
return;
}
}
在C++
函數指針可用於func
和crit
。
在C#
,yield
關鍵字正是解決這個問題的方法,我相信。
如何在Java中獲得同樣的東西?
你的循環有bug。它不處理最後一個元素。考慮一個列表,如果長度爲1 - while循環不會被輸入。 – Bohemian
好點:) 但幸運的是,這與問題沒有太大關係:) – MBZ