如何最好地获取缓存实现的List节点

时间:2012-07-07 07:23:30

标签: java caching

好的,首先我要用“我非常非常新的Java”(即几天之后)开头,但我是一名贸易程序员。

我遇到过想要加载数据的情况。但是,我想缓存该数据以防止对API的无关调用(或者,无论数据源是什么)。考虑一下后,我想出了一个缓存方案,这对我来说似乎很合理:我的想法是DataCache类有两个集合:一个哈希表,键类型为“string”,值类型为“CacheData” ”。 CacheData有2个数据成员 - 字符串形式的api调用的实际结果,以及链表的节点的ref(ListIterator?)。这将我们带到第二个集合 - 一个关键的链表。我们的想法是,当一个请求进入数据时,我们会看到它是否在Hash中。如果没有,我们从API获取,将生成的密钥添加到链表的前面,并将Data对象存储在包含结果的哈希中,并将ref引用到链表的第一个节点(我们只是添加)。如果在散列中找到数据,我们将节点从链表中分离出来,放在前面,然后从CacheData返回数据。如果我理解正确的话,每个操作的好处都保证在O(1)中执行。

我可以在链表中存储'request'的整数哈希值而不是整个字符串(request)吗?如果是这样,如何在给定整数的哈希映射中访问结果? (没有一种方法似乎把'int'作为参数)。另外......我对这种情况的态度是否合理?或者Java中是否有可能使这更容易?

0 个答案:

没有答案