Java判断一个对象与其他多个是否相等有无简洁表达,如:if(a.equals(b)||a.equals(c)){}.

第二个a.equals有办法省略吗... 第二个a.equals有办法省略吗 展开
 我来答
zhang779896660
2017-01-18 · TA获得超过701个赞
知道小有建树答主
回答量:717
采纳率:100%
帮助的人:339万
展开全部

如果这个对象是自己定义的, 可以改写对象的 equal方法,就能实现了

  @Override
    public boolean equals(Object obj) { //重写equals方法
        boolean flag = true;
        if (obj instanceof List) {
            List<Test> list = (List<Test>) obj; //传入的是多个Test对象
            for (Test test : list) {
                if (test != this) { //这个!= 可以换成对象里的具体属性对比,这里仅做示例
                    flag = false; //这里示例的意思是,必须全部相等,有一个不等,就返回false
                    break;
                }
            }
        }
        return flag;
    }
    public boolean equals(Object... obj) { //新加的此类独有方法
        boolean flag = true;
        for (Object object : obj) {
            if (object != this) { //这个!= 可以换成对象里的具体属性对比,这里仅做示例
                flag = false; //这里示例的意思是,必须全部相等,有一个不等,就返回false, 可以根据需要改成或 和 且的关系
                break;
            }
        }
        return flag;
    }
    public static void main(String[] args) {
        Test t = new Test();
        //默认继承但被重写的方法
        t.equals(Arrays.asList(new Test(), new Test()));
        //自定义的比较方法
        t.equals(new Test(), new Test());
    }
来自珍珠泉精神饱满的千头椿
2019-05-29
知道答主
回答量:4
采纳率:0%
帮助的人:3771
展开全部
多个equals()比较时,可以了解下contains(),contains是是否包含的意思,左边的对象相当于是一个容器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式