缓存是否会减少Java的运行时间



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

HashMap<studentId, TreeMap<Date, studentScore>>

自,

以来

getBestgrade方法:在o(1)中查找学生的所有提交,然后在o(n)中找到最佳提交(您可以通过缓存最佳分数进行改进)。

所以我的问题是,我该如何使用缓存作为getBestgrade?我在想的是,首先要为树木图上一堂课,然后添加放置,删除和getBestgrade的方法。比我只是在另一堂课中称呼它。

另外,缓存的使用如何降低时间复杂性(big-o)?

请帮助...谢谢

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

顺便说一句,这是存储数据的好方法。Acess将带有给定的学生和日期键。

HashMap<studentId, TreeMap<Date, studentScore>>

最新更新