Maison > Java > javaDidacticiel > Comment initialiser des cartes statiques en Java : bloc statique ou sous-classe anonyme ?

Comment initialiser des cartes statiques en Java : bloc statique ou sous-classe anonyme ?

Patricia Arquette
Libérer: 2024-12-03 20:21:16
original
634 Les gens l'ont consulté

How to Initialize Static Maps in Java: Static Block vs. Anonymous Subclass?

Initialisation des cartes statiques en Java

En Java, les cartes statiques peuvent être initialisées à l'aide de deux méthodes principales :

1. Static Initialiser

Cette méthode implique l'utilisation d'un bloc statique dans la déclaration de classe pour initialiser la carte. Un exemple de ceci est présenté dans l'exemple de code fourni :

private static final Map<Integer, String> myMap = new HashMap<>();
static {
    myMap.put(1, "one");
    myMap.put(2, "two");
}
Copier après la connexion

Avantages :

  • Simple et direct
  • Garantit l'initialisation lors de l'initialisation classe chargement

Inconvénients :

  • Peut ne pas convenir à une logique d'initialisation complexe

2. Instance Initialiser (sous-classe anonyme)

Cette méthode utilise une sous-classe anonyme pour initialiser la carte. Il est écrit comme un initialiseur d'instance mais sert le même objectif que l'initialisation statique :

private static final Map<Integer, String> myMap2 = new HashMap<>(){
    {
        put(1, "one");
        put(2, "two");
    }
};
Copier après la connexion

Avantages :

  • Permet une logique d'initialisation plus complexe
  • Crée un immuable map

Inconvénients :

  • Nécessite la création d'une sous-classe anonyme
  • Peut ne pas être pris en charge dans tous les scénarios (par exemple, lorsque le la classe est final)

Alternatives :

  • Cartes statiques immuables :En initialisant une carte à l'aide d'un bloc statique puis en appelant Collections .unmodifiableMap(map), vous pouvez créer une carte statique immuable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal