迭代范围内的Java Map

时间:2015-02-16 19:26:17

标签: java dictionary data-structures

我有一个TreeMap<LocalDate, TreeSet<EmployeeObject>,其中包含Date作为密钥,以及Set所有员工的出生日期。我想在两个日期之间迭代Map,例如22/02/15 to 27/02/15。是否有可能有效地完成它而不必遍历整个Map

(编辑)附加问题:作为替代方案,您认为Trie或其他一些数据结构更适合这种情况,而不是Map存储所有员工的出生日期,然后再存储日期在范围之间查询它们?

2 个答案:

答案 0 :(得分:2)

这完全取决于您使用的地图类型。如果你使用HashMap,没有。如果您使用TreeMap,则是(请参阅它实现的the NavigableMap接口)。如果您使用Guava RangeMap,尤其是是。

答案 1 :(得分:1)

使用TreeMap作为实现(或导入数据)。它将允许您访问NavigableSet以获取键,或者在请求范围内(可以正常迭代)的Map的子地图视图。它们是视图,因此数据不会重复。