初始化 Java 中的静态 Map 及其示例

2025年4月7日 | 阅读 6 分钟

在 Java 中,初始化静态 Map 意味着创建一个与类关联而非与类的实例关联的 Map 对象。这允许 Map 在类的所有实例之间共享,并且可以在不创建对象的情况下访问。静态 Map 特别适用于存储需要在类的多个实例之间共享的数据或维护整个应用程序可访问的全局 Map。

方法 1:静态初始化块

  • 将静态 Map 定义为类变量。
  • 使用静态初始化块来实例化 Map 并用键值对填充它。
  • 当 JVM 加载类时,该块将被执行。

算法

步骤 1:开始程序执行。

步骤 2:定义一个名为“StaticMapExample”的类。

步骤 3:在类内部,声明一个名为“staticMap”的私有静态 Map 变量,其键为 String,值为 Integer。

步骤 4:使用“static”关键字创建一个静态初始化块。

步骤 5:在静态块内

步骤 5.1:使用“HashMap”类实例化静态 Map,并将其分配给“staticMap”变量。

步骤 5.2:用键值对填充静态 Map

步骤 5.2.1:添加键“apple”,值为 10。

步骤 5.2.2:添加键“banana”,值为 20。

步骤 5.2.3:添加键“orange”,值为 30。

步骤 6:定义 main 方法以演示如何访问静态 Map。

步骤 7:在 main 方法内

步骤 7.1:使用静态 Map 的“get”方法打印与键“apple”关联的值。

步骤 7.2:使用静态 Map 的“get”方法打印与键“banana”关联的值。

步骤 8:使用静态 Map 的“get”方法打印与键“orange”关联的值。

步骤 9:结束程序执行。

实施

上述步骤的实现如下

文件名:StaticMapExample.java

输出

10
20
30

解释

在上面的代码中,静态 Map staticMap 被定义为一个类变量。使用静态初始化块来实例化 Map 并用键值对填充它。在块内部,创建一个新的 HashMap 对象,并使用 put 方法将键值对添加到 Map 中。提供了 main 方法来演示如何访问和使用静态 Map。在 main 方法中,使用 get 方法检索并打印与键“apple”、“banana”和“orange”关联的值。

复杂度分析

时间复杂度:在静态初始化块中实例化 HashMap 并用键值对填充它,时间复杂度为 O(1),因为键值对的数量是固定的。

空间复杂度:在静态初始化块中创建静态 Map 的空间复杂度为 O(n),其中 n 是 Map 中键值对的数量。

方法 2:静态方法

  • 将静态 Map 定义为类变量。
  • 创建一个静态方法来初始化并返回 Map。
  • 调用此方法以获取 Map 实例。

算法

步骤 1:开始程序执行。

步骤 2:定义一个名为“StaticMapExample”的类。

步骤 3:在类内部,声明一个名为“staticMap”的私有静态 Map 变量,其键为 String,值为 Integer。

步骤 4:创建一个名为“initializeStaticMap”的静态方法,该方法返回一个 Map。

步骤 5:在方法内

步骤 5.1:使用“HashMap”类实例化静态 Map,并将其分配给“staticMap”变量。

步骤 6:用键值对填充静态 Map

步骤 6.1:添加键“apple”,值为 10。

步骤 6.2:添加键“banana”,值为 20。

步骤 6.3:添加键“orange”,值为 30。

步骤 6.4:返回初始化的静态 Map。

步骤 7:定义 main 方法以演示如何访问静态 Map。

步骤 8:在 main 方法内

步骤 8.1:调用“initializeStaticMap”方法获取初始化的静态 Map,并将其分配给名为“map”的 Map 变量。

步骤 8.2:使用静态 Map 的“get”方法打印与键“apple”关联的值。

步骤 8.3:使用静态 Map 的“get”方法打印与键“banana”关联的值。

步骤 8.4:使用静态 Map 的“get”方法打印与键“orange”关联的值。

步骤 9:结束程序执行。

实施

上述步骤的实现如下

文件名:StaticMapExample.java

输出

10
20
30

解释

在给定的代码中,静态 Map staticMap 被定义为一个类变量。创建了一个名为 initializeStaticMap() 的静态方法来初始化并返回 Map。使用 HashMap 类实例化 Map。使用 put 方法将键值对添加到 Map 中。然后返回初始化的 Map。提供了 main 方法来演示如何访问和使用静态 Map。在 main 方法中使用 get 方法检索并打印与键“apple”、“banana”和“orange”关联的值。

复杂度分析

时间复杂度:在静态方法中实例化 HashMap 并用键值对填充它,时间复杂度为 O(1),因为键值对的数量是固定的。

空间复杂度:在静态方法中创建静态 Map 的空间复杂度为 O(n),其中 n 是 Map 中键值对的数量。

方法 3:直接初始化

  • 将静态 Map 定义为类变量。
  • 在声明点直接初始化和填充 Map。

算法

步骤 1:开始程序执行。

步骤 2:定义一个名为“StaticMapExample”的类。

步骤 3:在类内部,声明一个名为“staticMap”的私有静态 Map 变量,其键为 String,值为 Integer。

步骤 4:使用匿名内部类在声明点直接初始化和填充静态 Map

步骤 4.1:使用“HashMap”类实例化静态 Map。

步骤 4.2:用键值对填充静态 Map

步骤 4.2.1:添加键“apple”,值为 10。

步骤 4.2.2:添加键“banana”,值为 20。

步骤 4.2.3:添加键“orange”,值为 30。

步骤 5:定义 main 方法以演示如何访问静态 Map。

步骤 6:在 main 方法内

步骤 6.1:访问和使用静态 Map。

步骤 6.2:使用静态 Map 的“get”方法打印与键“apple”关联的值。

步骤 6.3:使用静态 Map 的“get”方法打印与键“banana”关联的值。

步骤 6.4:使用静态 Map 的“get”方法打印与键“orange”关联的值。

步骤 7:结束程序执行。

实施

上述步骤的实现如下

文件名:StaticMapExample.java

输出

10
20
30

解释

静态 Map staticMap 被定义为一个类变量,并在声明点直接初始化。使用匿名内部类,该类扩展 HashMap 来创建一个 Map 实例。在实例初始化器块中,使用 put 方法将键值对添加到 Map 中。提供了 main 方法来演示如何访问和使用静态 Map。在 main 方法中,使用 get 方法检索并打印与键“apple”、“banana”和“orange”关联的值。

复杂度分析

时间复杂度:在声明点直接初始化静态 Map 的时间复杂度为 O(1)。

空间复杂度:静态 Map 初始化空间复杂度为 O(n),其中 n 是 Map 中键值对的数量。


下一主题Java API