从Properties文件中读取v/s HashMap查找

And*_*ndy 4 java performance hashmap

这是一种在内存和计算方面访问(键,值)对的更有效方法:使用properties.getProperty("key")从属性文件读取或在整个属性文件的开头将整个属性文件加载到HashMap中程序,然后在HashMap中查找键?

此外,如果重复使用属性中只有一个值,那么最好将值存储在成员变量中并访问它或每次使用properties.getProperty("key")查找它吗?

JB *_*zet 14

properties.getProperty("key")是来自Hashtable的查找,它是Properties对象.执行此操作时Properties.load(),将从文件中加载条目并将其存储到Properties对象中,该对象扩展了Hashtable.对属性的每次后续访问都会在Hashtable中进行查找.再也没有文件IO了.

当然,访问成员变量比从HashMap中的键访问值稍微快一些,但我怀疑这是否会在性能上获得任何重要性.HashMap查找是O(1),并且很快.在注意到差异之前,您可能需要数百万次查找.做什么是最可读的.