在Java中,我使用TreeSet来存储带有时间戳的一些数据点。让我们说一个数据点,我们称之为RestaurantExperience
,如下所示:
{
timestamp: <long>,
restaurant: <string>,
tasty: <boolean>
}
现在,我可以使用TreeSet的ceiling
和floor
方法查找我在特定时间有任何经验的餐厅。但是,我对我在某个特定时间享受“美味”体验的餐厅感兴趣。
这意味着我正在尝试在时间戳和附近找到一个数据点,同时具有tasty
的特定值。我该怎么做呢?
理想情况下,我会为floor
和ceiling
方法添加额外条件,但我不知道如何。否则,是否有更适合此的数据结构?
答案 0 :(得分:1)
编写一个首先比较boolean tasty的Comparator,然后比较长时间戳
BorderBrush
然后在初始化TreeSet时使用它。
答案 1 :(得分:0)
我最终使用Guava的Sets.filter来过滤我感兴趣的数据点。然后可以使用生成的NavigableSet(仍有floor
&amp; ceiling
)进行搜索按时间戳。