我们有一个对象集合,每个对象都有一个整数ID和一个时间戳。我们希望能够搜索重复项并根据ID更新集合。可以使用什么数据结构按多个标准对对象进行排序/比较?
但是我们也希望能够采集集合的“切片”,例如在给定时间后查找带有时间戳的每个对象。所以我们也想对时间戳进行排序。
我们使用的TreeMap,它起初似乎给我们我们想要的东西。但是因为TreeMap(以及从SortedSet派生的所有内容)只使用compareTo()并忽略equals()方法,所以我们发现基于ID搜索重复项不起作用。我们的compareTo()方法试图允许这两个条件(在ID或时间戳上搜索),但最终是大而难看的,实际上并不工作。 :)
这个集合可能会变得非常大,所以我们当然希望尽可能快地搜索/排序/插入。
是否与另一个对象具有相同的id和时间戳记的对象是否重复? –
对不起,应该指定 - 如果对象具有相同的ID,则该对象是重复的。 –