日期:2014-05-20  浏览次数:20776 次

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