gpt4 book ai didi

java - java中的时间范围

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:14 24 4
gpt4 key购买 nike

在 Java 中有什么方法可以将时间范围存储为 Hashmap 中的键?我有一个 HashMap 并且我存储时间范围。例如:
我输入 0-50 范围作为键,对于该键,我将存储一些其他对象作为值。现在,当我说 10 时,我应该能够获得该键的相应值。
0-50 之间的任何值都应该获得该对象。

Map map = new HashMap();
map.put(0-50,"some object")
map.put(51-100,"some other object")

现在,当我说 map.get(10) 时,它应该能够获取“某个对象”。请建议如何做到这一点?

最佳答案

我不会使用 map ,而是尝试使用 R-Tree . R 树是为索引空间数据而创建的树结构。它存储矩形。它通常用于测试一个点(坐标)是否位于另一个几何体中。这些几何形状由矩形近似,并且存储在树中。

要存储一个矩形(或有关它的信息),您只需要保存左下角和右上角坐标。在您的情况下,这将是时间跨度的下限和上限。你可以这样想,好像所有坐标的y值都是0。那么你可以用你的时间值查询树。

当然你会保存每片叶子的值(时间跨度/矩形)

在 google 上简单搜索 r-tree java 得到了一些令人鼓舞的结果。实现您自己的 R 树并不简单,但如果您了解在插入/删除时重新排列树的原理,它也不会太复杂。在您的一维情况下,它可能会变得更简单。

关于java - java中的时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com