缓存会减少java中的运行时间吗?

时间:2017-09-19 04:49:38

标签: java caching data-structures big-o

例如,我现在需要实现的内容称为提交历史记录。这要求我使用比O(n)更好的数据结构,并且有人告诉我使用

HashMap<studentId, TreeMap<Date, studentScore>>

因为,

getBestGrade方法:在O(1)中查找学生的所有提交,然后在O(N)中找到最佳提交(您可以通过缓存最佳分数来提高它)。

所以我的问题是,我如何使用缓存来获取getBestGrade? 我的想法是,首先为树图创建一个类,并在其中添加put,remove和getBestGrade方法。我只是在另一堂课中把它叫回来。

此外,如何使用缓存减少时间复杂度(big-O)?

请帮忙......谢谢。

1 个答案:

答案 0 :(得分:0)

它被称为记忆方法(技术)。在Java 8中,此问题有新功能,here是链接。 它取决于您重复缓存旧数据的操作的频率。当然,您应该管理缓存大小。它可能会为您提供一些优势,但它也可能会扼杀您的记忆。 Here就是一个例子。

BTW,这是存储数据的好方法。 Acess将使用给定的studentId和Date键获取O(1)。

dynamic_cast