我一直在工作一整天,而且我無法弄清楚這可能是一件容易的任務 - 可能是缺少咖啡。 。
具有對象的Java列表 - 如果具有某個屬性的對象已經存在,則查找並替換(刪除)條目
我有一個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方法在您的情況下是個問題。與地圖祝你好運! – extraneon 2010-03-18 14:51:43
感謝,它的工作就像一個魅力 - 在HashMap上的「僞迭代」是有點iffy,但也適用於:-) – Gnark 2010-03-18 15:45:11