首页 > 解决方案 > 以下代码是否可以检查对象数组的内容是否彼此相等?

问题描述

我有这个大学班,我想看看老师和学生是否平等

public class college
{
    public boolean equals()        
    {        
        boolean isEqual = true;        
        int i = 0;                          
        while(students[i] != null || teacher[i] != null)        
        {        
            if(!students[i].equals(teacher[i]))        
            {        
                 isEqual = false;        
            }        
           i++;        
        }        
        return isEqual;                                         
    }
}

标签: javaobject

解决方案


我建议添加 1 个长度检查 + 更改您的代码以使用 for 循环。

1)

isEqual = (submarine.length == fighterJet.length);

因此,如果长度不同,您将不会进入循环。


2)

 for(int i = 0; isEqual && i < submarine.length; i++)

此循环将在不相等的值时退出循环。


新代码 -

public boolean equals()        
{        
    boolean isEqual = (submarine.length == fighterJet.length);       
    for(int i = 0 ; isEqual && i < submarine.length ; i ++){
        if(!submarine[i].equals(fighterJet[i]))        
        {        
             isEqual = false;        
        }           
    }        
    return isEqual;                                         
}

推荐阅读