1 回答
TA贡献1765条经验 获得超5个赞
现在还有另一个问题我得到了重复数据,所以为了解决这个问题,我决定创建一个哈希集并将我的对象存储在其中,但我仍然在哈希集中获得重复数据
您将获得重复数据,因为您正在添加Set不同类型的对象Model。Model集合中的每个对象在内存中都有不同的地址,这就是为什么集合中的每个对象都不同的原因。这Set是一个扩展 Collection 的接口,因此当使用这样的集合时,除非您指定它,否则您无法知道对象中的字段是否与另一个对象中的另一个字段具有相同的值。
aSet和 a之间有很大的区别List。如果您正在使用:
List<String> list = new ArrayList<>();
list.add("user2426691");
list.add("user2426691");
list.add("user2426691");
Log.d(TAG, list.toString());
您会看到您的列表将包含三个重复的名称。但是,如果您Set在以下代码行中使用了 a of 字符串:
Set<String> set = new HashSet<>(list);
Log.d(TAG, set.toString());
你会注意到你的Set遗嘱只包含一个元素(没有重复)。
要解决您的问题,您可以使用 aList或 aSet但您需要根据条件填充所需的对象集合,这可能是:
if(!model.getName().equals("someName")) {
list.add(model);
}
添加回答
举报
