1

我在 Object(Obj1) 中有一个属性

Set<AssignedService> serviceList;
public Set<AssignedService> getServiceList();

在某些情况下,我正在执行以下操作

Obj1.getServiceList().clear();
Obj1.getServiceList().addAll(services);

服务也设置在哪里

但我看到的最终结果是服务集有 4 个对象/数据元素,但 Obj1.getServiceList() 在 addAll 之后返回一个空集

这里有什么问题。AssignedService 对象是否有问题,因为它没有实现 IComparable

4

2 回答 2

3

你应该首先阅读这篇精彩的文章.equals()

然后,正如其他人指出的那样,检查您在课堂equals() 上的实现。 最有可能在这里找到根本原因。.hashcode()AssignedService

您还可以检查调用的返回值.addAll(...)-false表明底层Set没有被方法调用修改。

干杯,

于 2012-11-05T11:09:58.597 回答
0

检查 AssignedService 中 equals() 的实现。

Set:不包含重复元素的集合。更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals(e2),并且最多包含一个空元素。正如它的名字所暗示的,这个接口模拟了数学集合抽象。

于 2012-11-05T10:30:32.540 回答