在最近的一次采访中,我看到了这个代码。class User { private Long id; private String name; public void setId(Long id) { this.id = id; } public Long getId() { return this.id; } public void setName(String name) { this.name = name; } public String getName() { return this.name; }}Set<User> set = new HashSet<>();User user = new User();user.setId(1L);user.setName("test");set.add(user);User user2 = new User();user2.setId(1L);user2.setName("test");set.add(user2);System.out.println(set.size());面试官问我,对于布景的大小,会打印出什么。我回答了1,因为User的两个实例具有相同的值。但是在面试之后,我运行了代码,我得到了2。既然集合应该具有唯一的值,那么有人可以解释一下发生了什么吗?
添加回答
举报
0/150
提交
取消