我为我的游戏编写了自己的容器类,类似于 ArrayList 的容器类,但在很多方面有所不同,无论如何我想编写一个 foreach 方法来遍历支持数组。
我知道我可以使用 Arrays.stream
然而,我很好奇为数组迭代编写 #foreach 方法的自定义 lambda 实现会是什么样子。
有人知道吗?谢谢
例子:
class Container<T> {
T[] array = new T[200];
}
现在举例来说,我想这样做:
Container<Fish> fishies = new Container();
fishies.forEach(fish->System::out);
最佳答案
您需要在 Container
类中实现一个类似于 Stream
接口(interface)的 forEach
方法:
void forEach(Consumer<? super T> action)
{
for (int i = 0; i < array.length; i++)
action.accept(array[i]);
}
forEach
实现是串行的,因此它比 Stream
实现简单得多,后者也可以是并行的。
我忽略了 T[] array = new T[200];
没有通过编译这一事实,因为那是另一个问题。
关于java - 向自定义容器类添加 ".foreach"功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566654/