我有一张 HashMap 地图,其中 Node 是一个包含一些信息的类,最重要的是包含一个邻居 HashMap。
我的算法从外部HashMap随机获取并放入内部HashMap,例如
Node node = map.get(someInt);
node.getNeighbors().put(someInt, someOtherInt);
我在外部地图和内部地图中都有很多条目。完整的数据集不能单独由内存处理,所以我需要使用一些磁盘缓存。我想尽可能多地使用内存(直到几乎满,或者直到达到我指定的阈值),然后将条目驱逐到磁盘。
我使用了几个缓存(主要是 mapDb 和 EhCache)试图解决我的问题,但没有运气。我正在设置最大内存大小,但缓存只是忽略它。我几乎可以肯定,问题在于我的对象是动态大小的。
有人对我如何处理这个问题有任何想法吗?提前致谢。