Java 单例w/HashMap

Java 单例w/HashMap,java,hashmap,singleton,Java,Hashmap,Singleton,我是一名大学Java初学者,我对下面的练习有一个小问题,请问,有人能帮我吗 我需要使用Singleton创建一个应用程序,并在内存中实例化一个HashMap,该内存中的信息位于file.xml,如下所示: <propriedades> <configuracao> <chave>timeoutApplication</chave> <valor>10</valor> </configuracao> </p

我是一名大学Java初学者,我对下面的练习有一个小问题,请问,有人能帮我吗

我需要使用Singleton创建一个应用程序,并在内存中实例化一个HashMap,该内存中的信息位于file.xml,如下所示:

<propriedades>
<configuracao>
 <chave>timeoutApplication</chave>
<valor>10</valor>
</configuracao>
</propriedade>

我不知道在这种情况下如何实现HashMap

我不确定XML和hashmap之间的链接,因此我在这里假设您需要解析XML并填充hashmap值。在本例中,您可以使用JAXB从xml中读取并将其保存到hashmap

如果不涉及解析,那么您可以简单地声明并使用HashMap,如下所示

private FileWriter arquivo;
private HashMap map;
private static ArquivoLog log;
一项建议:

在singleton中实现双重检查锁定机制

 if(log==null) {
     synchronized (ArquivoLog.class) {
         if(log==null) {
            log = new ArquivoLog();
         }
     }
 }

创建实例并使用public方法公开hashmap时,填充hashmap值。如果hashmap值发生更改(如果根据您的业务逻辑允许),还可以根据您的逻辑更新xml文件。

您可以添加一个新的私有字段,如
private Map memory=new hashmap()
就在
arquivo
log
@TobiasOtto字段之间,我不建议使用原始集合。为此,地图可能是一个不错的选择。谢谢大家的分享。我试图使用
HashMap
,但还没有成功。我可以将此HashMap与FileWriter一起使用以生成xml文件吗?您希望创建一个文件作为此单例的一部分,还是读取该xml文件并将其保存在HashMap中,以便应用程序中的任何组件访问?@YogendraJ,我需要读取位于“C:\file.xml”的xml文件并保存在HashMap中。对不起,我不清楚。谢谢!我将尝试这个方法并了解JAXB。为了保持简单,您还可以使用DOM解析器。下面是示例代码:再次感谢。我不知道多姆的事。我会检查这个并尝试实现。
 if(log==null) {
     synchronized (ArquivoLog.class) {
         if(log==null) {
            log = new ArquivoLog();
         }
     }
 }