gpt4 book ai didi

java - 队列和映射类型功能的混合

转载 作者:行者123 更新时间:2023-12-01 19:18:48 26 4
gpt4 key购买 nike

据我所知,队列是一种通过头部和/或尾部访问的集合类型。

我还了解到, map 是一种集合类型,包含许多唯一的键,每个键都有一个关联的值。

我需要的是一个 map ,具有固定数量的值,其中的键将设置一次,并且在首次设置后不会更改。

我无法理解的困难部分是让这些值充当具有固定长度的队列,可以在不影响 key 的情况下推送该队列。

例如:

初始集合(最新项目位于顶部):

Key1, Value1
Key2, Value2
Key3, Value3

添加新值NewValue后的集合:

Key1, NewValue
Key2, Value1
Key3, Value2

因此,我希望 key 保持不变,并且能够通过将最旧的值推离末尾并将所有其他值进一步向下移动到末尾来添加新值。

如果框架内没有这样的类型,请有人推荐一种实现它的方法。

谢谢!

编辑:为什么我需要这样做的一个例子:

I need to be able to access the values according to the time period it was created in.
Example:

Key: 0 will contain a value from today
Key: -1 will contain a value from yesterday
Key: -2 will contain a value from two days ago
etc.

Only one value will be entered every day, and one value will ALWAYS be entered every day.

最佳答案

听起来你可以使用:

new LinkedHashMap<Long,V>(initialCapacity, loadFactor, false) {
protected boolean removeEldestEntry(Map.Entry<Long,V> e) {
return size() > MAX_ENTRIES;
}
};

要在此 map 中获取或放置项目,您需要规范化您的时间戳,例如当天的 00:00:00.000。

这种方法的一个优点是,当违反“每天都会输入一个值”的假设时,它不会默默地失败。

关于java - 队列和映射类型功能的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387156/

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