我有一个类(class) Student 和 Marks。
我正在使用 Student
Object
作为 HashMap
的 Key 和 Marks 作为 Value。
如果我不覆盖 hashMap
和 equals,它仍然可以正常工作。
我。如果不覆盖 equals()
和 hashcode()
,有人能解释一下它在内部是如何工作的吗
二.如果我只覆盖 hashcode()
iii.如果我只覆盖 equals()
class Student {
String name;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
String lastName;
Student(String name, String lastName){
this.name = name;
this.lastName = lastName;
}
public String toString(){
return(" Name : " + this.getName() + " Last Name : " + this.getLastName());
}
}
class Marks {
Student s;
String marks;
public Student getS() {
return s;
}
public void setS(Student s) {
this.s = s;
}
public String getMarks() {
return marks;
}
public void setMarks(String marks) {
this.marks = marks;
}
Marks (Student s, String marks){
this.marks = marks;
this.s = s;
}
public String toString(){
return(" Marks : " + this.getMarks());
}
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student("Vishnu","Verma");
Student s2 = new Student("Amit","Sharma");
Marks m1 = new Marks(s1,"65%");
Marks m2 = new Marks(s2,"67%");
Map <Student,Marks>map = new HashMap<Student,Marks>();
map.put(s1, m1);
map.put(s2, m2);
System.out.println(map);
}
}
最佳答案
如果对象的引用相等,它将认为对象相等。即它们指向同一个对象。
关于java - hashcode 和 equals 方法未被覆盖 - put 和 get 将如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376875/