public class Test { public static void main(String[] args) { Map<Student,Student> map = new HashMap<>(); Student student = new Student(); map.put(student,student); map.put(student,student); student = new Student(); map.put(student,student); map.put(student,student); System.out.println(map.size()); } } class Student{} 程序的输出结果是()。
时间: 2024-04-03 17:30:55 浏览: 68
C#中static void Main(string[] args) 参数示例详解
程序的输出结果是3。原因是HashMap会根据对象的hashCode值来判断是否是同一个对象,而由于第一个Student对象在put时被放进了HashMap中,后面再次put同一个对象时,由于hashCode值相同,HashMap会认为是同一个对象,所以不会将其再次放入。而第二个Student对象是一个新的对象,其hashCode值不同于第一个对象,所以HashMap会将其作为一个新的key-value对放入Map中,故Map的大小为3。
阅读全文