如何实现纯Java对象缓存

时间:2014-08-06 00:03:58

标签: java

我正在尝试使用Java训练语言模型。这涉及读取文件,从文件中提取单词标记,以及获取文件中每个唯一单词标记的频率。

我创建了一个Java对象来保存每个单词及其频率,然后将所有单词和频率的对象保存在ArrayList中。当提取密切相关的单词(例如,那个,然后,十个等)时,我想首先用hiest频率得到单词。

到目前为止,我已经实现了上述功能,但是,每次查询都需要我的PC执行大约25分钟,因为对于每个查询,它必须读取文本文件,计算单词频率,将它们保存在ArrayList中,以及然后在数组中搜索所需的单词。我相信用字和相应的频率缓存ArrayList会大大减少我的程序运行所花费的时间。

但是,我想实现自己的纯Java对象缓存。我已经搜索了这个,但大多数缓存解决方案都引用了第三方实现,我非常希望避免这种情况。

任何人都可以帮助我了解如何创建纯Java对象缓存的详细信息和/或教程以及示例代码吗? 我的问题的任何其他建议的解决方案是非常受欢迎的。

由于

1 个答案:

答案 0 :(得分:0)

你的基本方法应该是这样的:

Map<String,Integer> freqs = new HashMap<String,Integer>();


String[] words = inputString.split(" ");
for (String word: words) {
   Integer count =  freqs.get(word);
   if (count == null) {
      freqs.put(1);
   }
   else {
     freqs.put(word,count + 1);
   }
}

否则我肯定会看第三方图书馆。 ESP。如果你正在使用大型套装。