【发布时间】:2011-01-29 01:04:46
【问题描述】:
我一整天都在工作,但不知怎的,我无法解决这个可能很容易的任务 - 可能是缺少咖啡......
我有一个synchronizedList,其中存储了一些对象。这些对象有一个field,它类似于一个ID。这些对象携带有关用户及其当前状态的信息(简化版)。
重点是,我只想为每个用户提供一个对象。因此,当此用户的状态发生变化时,我想删除“旧”条目并在 List 中存储一个新条目。
protected static class Objects{
...
long time;
Object ID;
...
}
...
if (Objects.contains(ID)) {
Objects.remove(ID);
Objects.add(newObject);
} else {
Objects.add(newObject);
}
显然这不是要走的路,但应该说明我在寻找什么...
也许数据结构不是最好的,但欢迎任何帮助!
编辑:
添加了一些信息...
Set 似乎并不真正符合我的目的。 Objects 存储除了 ID 之外的一些其他字段,这些字段一直在变化。目的是,该列表将以某种方式代表用户的最新活动。我只需要跟踪最后一个状态,并且只保留描述这种情况的那个对象。我想我会尝试用
Map 重新安排我的代码,看看是否可行......
【问题讨论】:
-
是的,Set 的 add 方法在您的情况下是个问题。祝地图好运!
-
谢谢,它就像一个魅力 - HashMap 上的“伪迭代”有点不确定,但效果也很好:-)
标签: java list collections object contains