gpt4 book ai didi

java - 多个列表或列表和 getSublist() (Java)

转载 作者:行者123 更新时间:2023-12-02 03:28:33 27 4
gpt4 key购买 nike

我有一个抽象类“实体”和实现不同接口(interface)的对象(扩展“实体”)。我还有一个包含所有这些不同对象的 ArrayList。

现在,如果我需要访问实现某个接口(interface)的所有实体(以使用其方法),我使用以下方法(它返回实现接口(interface)“IDirectFire”的“实体”的过滤列表):

public ArrayList<IDirectFire> getDirectFireSublist() {//direct fire sublist
ArrayList<IDirectFire> sublist = new ArrayList();
entities.stream().filter((it) -> (it instanceof IDirectFire)).forEach((it) -> {
sublist.add((IDirectFire) it);
});
return sublist;
}

现在回答我的问题:我应该进一步使用此方法,还是应该创建一个除“实体”之外存在的新 ArrayList,并且每次“实体”更改时都需要手动更新?

我需要经常更新“实体”,所以我不确定存储多个子列表并在每次“实体”更改时更新它们是否更有效,或者我是否应该继续使用方法来过滤“实体”并应用这些子列表的方法。请记住,这些子列表也可以在其他方法的循环中使用,例如:

private void resetFirestatusIDF() {//reset firestatus (IDirectFire)
getDirectFireSublist().stream().forEach((it) -> {
it.dfHasFired(false);
});}

这可行吗?提前致谢!

最佳答案

Now to my question: Should I further work with this method or should I create a new ArrayList that exists besides 'entities' and that I would need to manually update every time 'entities' changes?

您出于什么原因想要复制“entites”数据?

1) 您只能将它们放在专用列表中。在这种情况下,您不再需要 getDirectFireSublist()。

2) 您可以在两个列表之间共享它们,而无需重复它们。在这种情况下,您必须更新添加和删除的实体元素,因为只有修改的元素才会更新。但实现起来相当简单。

关于java - 多个列表或列表和 getSublist() (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421348/

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