我在Object(Obj1)
中有一个属性Set<AssignedService> serviceList;
public Set<AssignedService> getServiceList();
我在某些情况下执行以下操作
Obj1.getServiceList().clear();
Obj1.getServiceList().addAll(services);
服务也设置
但我认为最终结果是服务集有4个对象/数据元素 但是Obj1.getServiceList()在addAll
之后返回一个空集这里有什么问题。它是AssignedService对象的问题,因为它没有实现IComparable
答案 0 :(得分:2)
您应该先在.equals()
然后,正如其他人所指出的那样,检查equals()
课程中.hashcode()
和 AssignedService
的实施情况。最有可能的根本原因在这里。
您还可以检查.addAll(...)
来电的返回值 - false
表示方法调用未修改基础Set
。
干杯,
答案 1 :(得分:0)
检查AssignedService中的equals()的实现。
Set:不包含重复元素的集合。更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)和至多一个null元素。正如其名称所暗示的,该界面对数学集抽象进行建模。