Java 使用.equals()比较两个对象';s变量
我需要搜索一组对象,并找到哪个对象包含与我读入的字符串匹配的“name”变量。以下是每个学生对象的外观:Java 使用.equals()比较两个对象';s变量,java,object,equals,Java,Object,Equals,我需要搜索一组对象,并找到哪个对象包含与我读入的字符串匹配的“name”变量。以下是每个学生对象的外观: public Student(String name, String class) { this.name = name; this.class = class; } 我还在employee类中编写了这个.equals()方法来进行对象比较 public boolean equals(Student student) { return this.name.equal
public Student(String name, String class)
{
this.name = name;
this.class = class;
}
我还在employee类中编写了这个.equals()
方法来进行对象比较
public boolean equals(Student student)
{
return this.name.equals(student.name);
}
在我的主课上,我将学生的名字转换成student
对象,并使用.equals()
方法将is与其他学生进行比较
public static void loadStudentProjects(ArrayList students)
Student currentStudent;
String studentName = "name";
while (count < students.size())
{
currentStudent = Students.create(studentName);
//The Student object is initialized as (name, null)
System.out.println(currentStudent.equals(students.get(count)));
count++;
publicstaticvoidloadstudentprojects(arrayliststudents)
学生;
String studentName=“name”;
while(count
即使我知道第一次比较应该显示名称的匹配项,此代码每次比较都返回false。有人告诉我需要将要比较的字符串名称转换为对象,并使用.equals()
方法,但我找不到使其工作的方法。您正在重载equals方法,而不是重写它。它应该更像
public boolean equals(Object o) {
...
}
在您的情况下,要检查任意对象
o
是否等于this
student,您需要
o
是否确实是Student
实例o
和this
是否有名称(o instanceof Student) && name.equals(((Student) o).name)
我建议您使用
compareTo
(或compareTignoreCase
)而不是equals
:
compareTo
如果字符串相等,则返回0
,在任何其他情况下返回一个不同于0
的数字
要与Student
对象进行比较,可以使用以下内容:
public void aMethod(ArrayList students) {
Student aStudent;
int count;
count = 0;
aStudent = newStudent("name", "class") // Construct the Student object with the appropriate parameters
for (Student s : students) {
if s.compareTo(aStudent) == 0 {
// Do something
}
}
}
希望这对您有所帮助请确保您的代码已编译。您不能使用“类”作为参数名,请粘贴完整的函数
loadStudentProjects
。另外,为什么在Employee
class?Typo中为Student
设置了.equals
?这是始终使用@Override
注释的一个很好的原因。也许提供一些信息以便OP可以使用equals
重载ed方法,因为它看起来很混乱:这个问题特别说要使用.equals(),但我无法确定这样做的方法。这个问题特别说要使用.equals(),但我无法确定这样做的方法。@DexterPeters这就是为什么第一行暗示它是一个建议
public void aMethod(ArrayList students) {
Student aStudent;
int count;
count = 0;
aStudent = newStudent("name", "class") // Construct the Student object with the appropriate parameters
for (Student s : students) {
if s.compareTo(aStudent) == 0 {
// Do something
}
}
}