首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayDeque是否包含对象?

ArrayDeque是否包含对象?
EN

Stack Overflow用户
提问于 2012-12-18 16:45:19
回答 1查看 497关注 0票数 2

我正在用一个ArrayDeque创建一个基本的库存系统,在这个系统中,所有的东西都会被推入库存中。

代码语言:javascript
复制
Couch couch1 = new Couch("I wouldn't sit on it.", 100, true);
roomList[0].inventory.add(couch1);

我正在运行一项检查,以查看物品是否在这样的房间中。

代码语言:javascript
复制
if (input.matches(".*look.*"))
{
    if(input.matches(".*Couch.*"))
    {
        if(roomList[currentRoom].inventory.contains(???))
        {
            //code to be executed.
        }
    }
}

我应该把什么放进?为了让它检查清单ArrayDeque是否包含对象couch1?如果这不可能,有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2012-12-18 16:59:36

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

这样做的缺点是,您必须使用相同的字段构造一个couch对象。如果这是不可能的,您可以求助于另一种数据类型,例如映射。然后,您可以根据沙发的某些字段通过唯一的id进行存储。

最后一种选择是不使用contains()函数,而是创建自己的函数,该函数循环遍历Deque并根据其他一些选择条件进行过滤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13929224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档