ArrayDeque的containsAll(Collectionc),contains(Objecto),equals(Objecto)方法返回预期值,但equals(Collectionc)方法返回意外结果
创始人
2024-09-14 04:30:38
0

问题是由于ArrayDeque的equals(Collection c)方法中实现不正确导致的。该方法没有正确处理元素的索引,导致包含相同元素但不同索引的集合被判定为不相等。

解决方法是实现一个新的equals(Collection c)方法,在该方法中,对集合中的元素逐个比较,如果元素相同但索引不同,则将其视为相等。以下是实现代码示例:

public boolean equals(Collection c) {
    if (c == this) {
        return true;
    }
    if (c instanceof ArrayDeque) {
        Iterator e1 = iterator();
        Iterator e2 = c.iterator();
        while (e1.hasNext() && e2.hasNext()) {
            Object o1 = e1.next();
            Object o2 = e2.next();
            if (o1 == null ? o2 != null : !o1.equals(o2)) {
                // Elements are not equal
                return false;
            }
        }
        // Extra elements in either list means that they are not equal
        return !(e1.hasNext() || e2.hasNext());
    } else {
        Iterator iterator = c.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            if (!contains(next)) {
                return false;
            }
        }
        return true;
    }
}

相关内容

热门资讯

透视揭露!wepoker辅助脚... 透视揭露!wepoker辅助脚本,wepoker私人局透视-确实是真的有辅助神器(哔哩哔哩)1、下载...
透视科普!wpk透视是真的假的... 透视科普!wpk透视是真的假的,wpk软件是正规的吗-真是存在有辅助软件(哔哩哔哩)1、金币登录送、...
透视解密!wepoker辅助真... 透视解密!wepoker辅助真的假的,We poker辅助器下载-真是真的有辅助神器(哔哩哔哩)亲,...
透视推荐!hhpoker辅助软... 透视推荐!hhpoker辅助软件,hhpoker德州有挂吗-果然是有辅助神器(哔哩哔哩)1、模拟器是...
透视科普!wpk透视是真的假的... 透视科普!wpk透视是真的假的,wpk辅助器是真的吗-真是是真的有辅助攻略(哔哩哔哩)1、有没有辅助...
透视曝光!wepoker可以透... 透视曝光!wepoker可以透视码,wejoker内置辅助-本来有辅助教程(哔哩哔哩)1、该软件可以...
透视揭露!wepoker破解工... 透视揭露!wepoker破解工具,wepoker怎么设置盖牌-本来一直总是有辅助方法(哔哩哔哩)1、...
透视有挂!有哪些免费的wpk作... 透视有挂!有哪些免费的wpk作弊码,wpk辅助器是真的吗-果然一直总是有辅助脚本(哔哩哔哩)1、公共...
透视关于!德扑圈透视挂,德普之... 透视关于!德扑圈透视挂,德普之星透视辅助-好像是真的有辅助软件(哔哩哔哩)脚本下载中分为三种模型:挂...
透视解密!德普辅助器怎么用,德... 透视解密!德普辅助器怎么用,德普之星透视-好像是有辅助app(哔哩哔哩)1、完成辅助器v3.3的残局...