例如,我在代码中有一些地方,它从磁盘接收许多文件(其中许多是相同的),并进一步将它们解组。如何在这种情况下创建缓存映射?
final File configurationFile = getConfigurationFile();
FileOutputStream fileOutputStream = new FileOutputStream(configurationFile);
Marshaller.marshal(configObject, fileOutputStream);
很显然,我可以创建一个特殊的缓存地图为他们提高性能(为了不给解组完全相同的文件,一遍又一遍)。对我而言,HashMap
的实现就足够了。
现在的问题是:我应该使用什么关键?
configurationFile.hashCode()
对此很不好?
感谢您的所有答案!
您如何识别两个文件是相同的?按文件名?如果答案是肯定的,文件名应该是关键。 – Eran 2014-10-01 08:57:32
无论如何,使用hashCode会是错误的,因为不同的文件可能具有相同的hashCode。 – Eran 2014-10-01 09:00:08