Java中的Lazy Collection

MBZ*_*MBZ 6 java collections

考虑一个问题,我正在开发一个像Collection这样的树.

我的Collection的一个主要功能是逐个跟踪所有存储的项目,然后为每个项目调用给定的函数,直到满足给定的条件(延迟收集).

因此该函数应具有以下签名:

void Trace(function func, criteria crit)
{
    item i = firstItem();
    while (i != endItem())
    {
        i = nextItem();
        func(i);
        if (crit(i))
            return;
    }
}
Run Code Online (Sandbox Code Playgroud)

C++函数指针中可以用于funccrit.
C#,yield关键字正是这个问题的解决方案,我相信.

我怎样才能在Java中获得相同的东西?

Pat*_*han 1

创建一个声明方法的接口,并需要对实现该接口的对象的引用作为参数。调用者可以使用匿名内部类创建对象。