java.util.Properties Vs java.util.Map<String, String>

2022-09-04 05:14:35

只是想知道。与什么区别?哪个更可取?java.util.Propertiesjava.util.HashMap<String, String>


答案 1

这两个实用程序类有不同的用途。Map,或者在您的情况下,HashMap是通用存储对象,您可以在其中具有唯一的键以及它们指向的值。HashMap 可以将任何对象类型作为其键,并将任何对象类型作为其值。

但是,java.util.Properties 是一个特殊用途的映射。它被开发为读取/写入属性文件。它有特殊的方法来做到这一点[参见]。地图没有。load(..)

因此,您有不同的情况来使用它们。需要读取属性的地方,最好使用属性。在您希望从某些逻辑中存储查找值的地方,您可以使用 .HashMap<String, String>

没有硬性规定,你可以使用和互换。但作为一名工程师,使用正确的工具来完成任务HashMap<String, String>Properties


答案 2

它们是相似的,但从设计的角度来看,Properties类被认为是java的“错误”之一,因为它是一个Hashtable(而不是使用Hashtable)。它应该是一个接口。

始终尽可能使用摘要,因此最好这样做:

Map<String, String> stuff = new HashMap<String, String>();

除非有必要,否则倾向于避免使用。Properties