List里面可以放重复的值,Set里面是不能放重复的值的,而set判断对象是否重复是根据对象的equals方法来判断的,你可以重写Organization这个类的equals方法,用数据库的主键来判断相等。如果用eclipse的话直接右键,override,有个重写equals方法,选上主键的属性就行了。

解决方案 »

  1.   

    简单来说!!List是可重复,但是是有序的,Set是不能重复,无序了。。如果 new  一个 TreeSet  那么  让就会变成有序的。。
      

  2.   

    上面两位  说的 我也知道
    但我的问题 
    你们看明白了嘛
    我前台取得A对象ID=1,得到 A 和 B集合(三个B对象)
    然后我删除了 B集合中的 两个 ,那就 只有 A 对象和 一个B 的 集合,传到后台,我直接遍历 A对象中的 B集合
    还是有 三个B对象不知原因
    我主要的问题 是这样 
    然后 LIST 换成 SET 就不存在问题了 
      

  3.   

    我怀疑是由于后台根据 A 自动加载了 B。因为你还没有真正从数据库中删除 B,所以自动加载时可以得到3个B的。
    但是对于 set,由于T 类缺少 equals 和 hashcode,所以该set只会包含一个元素,这跟你是否删除2个 B无关。道理同1楼。给 set<T>的那个 T 类加上 equals 和 hashcode ,然后再试试看。