有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

缓存是否减少了java中的运行时间?

例如,我现在需要实现的是提交历史记录。这要求我使用的数据结构对其每个方法都比O(n)好,有人告诉我要使用

HashMap<studentId, TreeMap<Date, studentScore>>

既然

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

所以我的问题是,我将如何为getBestGrade使用缓存? 我的想法是,首先为树映射创建一个类,并在其中添加put、remove和getBestGrade方法。然后我在另一节课上把它叫回来

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

请帮忙。。。谢谢


共 (1) 个答案

  1. # 1 楼答案

    它被称为记忆方法(技术)。在Java8中,这个问题有一些新特性,here是链接。 这取决于重复缓存旧数据的操作的频率。当然,您应该管理缓存大小。它可能会给你带来一些好处,但也可能会扼杀你的记忆力。 Here就是一个例子

    顺便说一句,这是存储数据的好方法。Acess将在给定学生ID和日期键的情况下取O(1)

    HashMap<studentId, TreeMap<Date, studentScore>>