set集合问题,帮忙解答下,谢谢
team里面有
Set Students = new HashSet();
Team team = new Team();
team.setTeamName("team1");
for(int i = 0; i < 1200; i++)
{
Student student = new Student();
student.setName("lisi");
student.setAge(30);
student.setCardId("123456");
student.setTeam(team);
team.getStudents().add(student);
}
为什么相同的student对象怎么都加到了set的集合里面去了
------最佳解决方案--------------------Student类要重写 equals()和hashCode()方法。
------其他解决方案--------------------那是200个不同的student对象,只是刚好这些对象的内容一致,但在内存中它们分别占一个位置
正如楼上所言,可以重写equals方法,判定当名字相同,或者是全部资料都相同时就认为同一个student,那后面的就不会放进去了
------其他解决方案--------------------如2楼所说,这是200个不同的对象,不信用equals方法测试一下
------其他解决方案--------------------set只是单个值不重复,不是对象。每次new 都是一个新的地址,每个对象都不一样的地址。所以每次都set了不同的地址进去。