gpt4 book ai didi

java - ArrayDeque 包含对象?

转载 作者:行者123 更新时间:2023-11-29 09:07:47 26 4
gpt4 key购买 nike

我正在使用 ArrayDeque 创建一个基本的库存系统,其中的东西被插入库存。

Couch couch1 = new Couch("I wouldn't sit on it.", 100, true);
roomList[0].inventory.add(couch1);

我正在检查这样的房间里是否有元素。

if (input.matches(".*look.*"))
{
if(input.matches(".*Couch.*"))
{
if(roomList[currentRoom].inventory.contains(???))
{
//code to be executed.
}
}
}

我要在 ???为了让它检查库存 ArrayDeque 是否包含对象 couch1?如果这不可能,是否有更好的方法来做到这一点?

最佳答案

contains() 函数基于您对 equals() 的实现。默认情况下,您必须提供完全相同的对象(因此 couch1)。如果您覆盖,您可以创建自己的 equals 版本,例如通过比较所有字段。一个非常有用的工具是 Apache EqualsBuilder ,这也解释了如何实现 equals() 函数。

缺点是您必须构造一个具有相同字段的沙发对象。如果那不可能,您也许可以求助于另一种数据类型,例如 map 。然后,您可以根据沙发的某些字段通过唯一 ID 进行存储。

最后一个替代方案是不使用 contains() 函数,而是创建您自己的函数来循环遍历 Deque 并根据其他一些选择标准进行过滤。

关于java - ArrayDeque 包含对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929224/

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