gpt4 book ai didi

java - 向自定义容器类添加 ".foreach"功能

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:44:21 26 4
gpt4 key购买 nike

我为我的游戏编写了自己的容器类,类似于 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/

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