gpt4 book ai didi

java - hashcode 和 equals 方法未被覆盖 - put 和 get 将如何工作?

转载 作者:行者123 更新时间:2023-11-29 05:00:09 25 4
gpt4 key购买 nike

我有一个类(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com