T
- the type of data
public class ImmutableTimeStampedCache<T extends TimeStamped> extends Object implements TimeStampedCache<T>
TimeStamped
数据缓存。当所有缓存数据都存储在内存中时,此策略是合适的。(例如,UTCScale
)然后,该类提供了方便的方法来访问数据。
Constructor and Description |
---|
ImmutableTimeStampedCache(int maxNeighborsSize, Collection<? extends T> data)
使用给定的邻居大小和数据创建一个新的缓存。
|
Modifier and Type | Method and Description |
---|---|
static <TS extends TimeStamped> |
emptyCache()
获取一个空的不可变缓存,并转换为正确的类型。
|
List<T> |
getAll()
获取此缓存中的所有数据。
|
T |
getEarliest()
获取此缓存中最早的条目。
|
T |
getLatest()
获取此缓存中最新的条目。
|
int |
getMaxNeighborsSize()
获取由 TimeStampedCache.getNeighbors(AbsoluteDate, int) 返回的列表的最大大小。
|
Stream<T> |
getNeighbors(AbsoluteDate central, int n)
获取围绕中心日期的条目。
|
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getNeighbors
public ImmutableTimeStampedCache(int maxNeighborsSize, Collection<? extends T> data)
maxNeighborsSize
- 从getNeighbors(AbsoluteDate, int)
返回的列表的最大大小。必须小于或等于data.size()
。
data
- 此缓存的后备数据。列表将被复制以确保不可变性。为了保证不可变性,data
中的条目本身必须是不可变的。数据必须比maxNeighborsSize
多。
IllegalArgumentException
- 如果neightborsSize > data.size()
或者neighborsSize
为负
public Stream<T> getNeighbors(AbsoluteDate central, int n)
如果中心日期在覆盖范围内,返回的数组将平衡,中心日期之前的点和中心日期之后的点各占一半(当然取决于n的奇偶性)。如果中心日期接近边界,则返回的数组将不平衡,并且将仅包含n个最早(或最晚)的条目。后一种情况的典型示例是闰秒缓存,因为闰秒的数量不能任意增加。
此方法对多个线程同时执行是安全的。
getNeighbors
在接口 TimeStampedCache<T extends TimeStamped>
central
- 中心日期
n
- 邻居数(不能超过TimeStampedCache.getMaxNeighborsSize()
)
public int getMaxNeighborsSize()
TimeStampedCache.getNeighbors(AbsoluteDate, int)
返回的列表的最大大小。
getMaxNeighborsSize
在接口 TimeStampedCache<T extends TimeStamped>
public T getEarliest()
getEarliest
在接口 TimeStampedCache<T extends TimeStamped>
public T getLatest()
getLatest
在接口 TimeStampedCache<T extends TimeStamped>
public List<T> getAll()
constructor
的数据的排序集合。
public static final <TS extends TimeStamped> ImmutableTimeStampedCache<TS> emptyCache()
TS
- 数据的类型
ImmutableTimeStampedCache
。
Copyright © 2002-2023 CS GROUP. All rights reserved.