读书人

set集合有关问题帮忙解答上多谢

发布时间: 2012-12-17 09:31:40 作者: rapoo

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了不同的地址进去。

读书人网 >Java相关

热点推荐