gpt4 book ai didi

java - Java 中的惰性集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:12 24 4
gpt4 key购买 nike

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

我的 Collection 的主要功能之一是逐一跟踪所有存储的项目,然后为每个项目调用一个给定的函数,直到满足给定的标准遇到了(惰性 Collection )。

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

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

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

如何在 Java 中获得相同的东西?

最佳答案

在 Java 中,您可以传递对实现适用功能的类的对象的引用,或者改用 Commons Collections:

例如:

Closure c = new Closure() {
public void execute(Object obj) {
...
}
};

Predicate p = new Predicate() {
public boolean evaluate(Object obj) {
...
}
}

Trace(c, p);

关于java - Java 中的惰性集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com