好的,首先我会以“我对 Java 非常陌生”(即几天后)作为开头,但我是一名程序员。
我遇到了要加载数据的情况。但是,我想缓存该数据以防止对 API 的无关调用(或者,无论数据源是什么)。经过一番思考,我想出了一个对我来说似乎很合理的缓存方案:这个想法是 DataCache 类有两个集合:一个哈希表,键类型为“字符串”,值类型为“CacheData” ”。CacheData 有 2 个数据成员 - 以字符串形式调用 api 的实际结果,以及指向链表节点的 ref (ListIterator?)。这将我们带到了第二个集合 - 键的链接列表。这个想法是,当请求数据时,我们会查看它是否在哈希中。如果没有,我们从 API 中获取,将结果键添加到链表的前面,并在包含结果的散列中存储一个 Data 对象,以及指向链表第一个节点(我们刚刚添加的那个)的引用。如果在哈希中找到数据,我们将节点从链表中取出,放在最前面,然后从 CacheData 返回数据。好处是,如果我理解正确,每个操作都保证在 O(1) 中执行。
我可以将“请求”的整数哈希值存储在链表中而不是整个字符串(请求)中吗?如果是这样,给定该整数,我如何访问哈希图中的结果?(这些方法似乎都没有将“int”作为参数)。另外...我对这种情况的处理方法是否合理?或者在 Java 中是否有一些东西可以让这更容易?