Java 访问密钥位于特定范围内的集合中的项

Java 访问密钥位于特定范围内的集合中的项,java,collections,Java,Collections,我想将一些数据存储在一个集合中,用于动画目的,其思想是动画数据存储在关键帧中。要确定您在动画中的位置,您需要知道在任何特定时间哪些项目是相关的。所以我的问题是,在任何地方都有一个collections API,它支持基于某个范围内传递的密钥对对象进行检索 下面是一个例子 如果我有一些代表以下“时间”的数据 0.0 1.0 2.5 2.7 3.0 我希望能够存储数据,这样,如果我传入一个键值,我将返回最低匹配值。下面是一些键值示例 0.7将检索0.0对象 2.49将检索1.0对象 2.7将检索2.

我想将一些数据存储在一个集合中,用于动画目的,其思想是动画数据存储在关键帧中。要确定您在动画中的位置,您需要知道在任何特定时间哪些项目是相关的。所以我的问题是,在任何地方都有一个collections API,它支持基于某个范围内传递的密钥对对象进行检索

下面是一个例子

如果我有一些代表以下“时间”的数据

0.0
1.0
2.5
2.7
3.0

我希望能够存储数据,这样,如果我传入一个键值,我将返回最低匹配值。下面是一些键值示例

0.7将检索0.0对象
2.49将检索1.0对象
2.7将检索2.7对象
10.0将检索3.0对象


我完全知道我可能可以自己编写一些代码,但我想检查是否已经存在执行此操作的API。

您可以将时间存储在
NavigableSet
中,并使用
floor
检索数据

NavigableSet<Double> timeSet = new TreeSet<Double>();
timeSet.add(0.0);
timeSet.add(1.0);
timeSet.add(2.5);
timeSet.add(2.7);
timeSet.add(3.0);

System.out.println(timeSet.floor(0.7));
System.out.println(timeSet.floor(2.49));
NavigableSet timeSet=new TreeSet();
添加时间集(0.0);
添加时间集(1.0);
添加时间集(2.5);
添加时间集(2.7);
添加时间集(3.0);
系统输出打印LN(时间集楼层(0.7));
系统输出打印LN(时间集楼层(2.49));

如果您需要时间数据,还有一个
NavigableMap
(例如
TreeMap
),使用
floorrentry
方法检索数据。

您可以将时间存储在
NavigableSet
中,并使用
floor
检索数据

NavigableSet<Double> timeSet = new TreeSet<Double>();
timeSet.add(0.0);
timeSet.add(1.0);
timeSet.add(2.5);
timeSet.add(2.7);
timeSet.add(3.0);

System.out.println(timeSet.floor(0.7));
System.out.println(timeSet.floor(2.49));
NavigableSet timeSet=new TreeSet();
添加时间集(0.0);
添加时间集(1.0);
添加时间集(2.5);
添加时间集(2.7);
添加时间集(3.0);
系统输出打印LN(时间集楼层(0.7));
系统输出打印LN(时间集楼层(2.49));
如果您需要时间数据,还有一个
NavigableMap
(例如
TreeMap
),使用
floorEntry
方法检索数据。

您需要一个NavigableMap(由TreeSet实现)(或一个NavigableMap,由TreeMap实现)。其方法如下:

返回此集合中小于或等于给定元素的最大元素,如果没有此类元素,则返回null

您需要一个NavigableSet(由TreeSet实现)(或一个NavigableMap,由TreeMap实现)。其方法如下:

返回此集合中小于或等于给定元素的最大元素,如果没有此类元素,则返回null