【发布时间】:2018-04-06 22:13:23
【问题描述】:
我有以下场景(修改了一个比实际业务目的)。
- 我有一个程序可以预测一个人会摄入多少卡路里 根据某些属性,在接下来的 13 周内松动。
- 我想将此结果缓存在数据库中,这样我就不会调用 再次预测相同的组合。
- 我有班人
class Person { int personId; String weekStartDate; } - 我有
HashMap<List<Person>, Integer>- 关键是一个人13周的数据,值是预测 - 我会将哈希值保留在数据库中以用于缓存目的
有没有更好的方法来处理上述情况?任何支持此类场景的设计模式
【问题讨论】:
-
我有 HashMap
- , Integer> - 关键是一个人的 13 周数据,值是预测 ---> 人对象不是真正的数据,对吗?因为它们只包含 personIds 和日期?
-
另外,一个人的列表是一个人的 13 周数据,这对我来说似乎有点违反直觉。这本身就是一个很好的课程候选人。
-
您的数据结构不正确。关键似乎是不同人的集合。一般来说,任何可变对象都不应用作
HashMap中的键,因为对任何包含的值的任何更改都会破坏映射并阻止以后找到该对象。 -
就
HashMap< List < Person>, Integer>而言,是的,您可以这样做。 -
@FedericoklezCulloca,13 周是动态的,它取决于输入参数。在另一种情况下,它可以预测未来 6 周
标签: java design-patterns hashmap