例如,我在代碼中有一些地方,它從磁盤接收許多文件(其中許多是相同的),並進一步將它們解組。如何在這種情況下創建緩存映射?
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