MST

星途 面试题库

面试题:Java中如何在集合框架中应用单例设计模式

假设你正在开发一个Java应用,需要在集合中存储一些全局唯一的配置信息。请描述如何结合Java集合框架(如`HashMap`)与单例设计模式来实现这一需求。说明单例类的设计要点以及如何将其与集合关联使用。
41.8万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

单例类设计要点

  1. 私有构造函数:防止外部通过构造函数创建新实例,确保只能有一个实例存在。
  2. 静态成员变量:用于存储单例实例,保证在类加载时就初始化或者延迟初始化。
  3. 静态方法:提供全局访问点来获取单例实例。

结合HashMap实现存储全局唯一配置信息

以下是示例代码:

import java.util.HashMap;
import java.util.Map;

public class ConfigSingleton {
    // 私有静态成员变量存储单例实例
    private static ConfigSingleton instance;
    // 使用HashMap存储配置信息
    private Map<String, String> configMap;

    // 私有构造函数
    private ConfigSingleton() {
        configMap = new HashMap<>();
    }

    // 静态方法获取单例实例
    public static ConfigSingleton getInstance() {
        if (instance == null) {
            synchronized (ConfigSingleton.class) {
                if (instance == null) {
                    instance = new ConfigSingleton();
                }
            }
        }
        return instance;
    }

    // 向配置集合中添加配置信息
    public void addConfig(String key, String value) {
        configMap.put(key, value);
    }

    // 从配置集合中获取配置信息
    public String getConfig(String key) {
        return configMap.get(key);
    }
}

在上述代码中:

  1. ConfigSingleton类通过私有构造函数确保不能在外部创建新实例。
  2. instanceConfigSingleton类的唯一实例。
  3. getInstance方法采用双重检查锁机制来确保线程安全地创建单例实例。
  4. configMap用于存储全局唯一的配置信息,通过addConfiggetConfig方法来操作配置集合。