Maison >Java >javaDidacticiel >Comment initialiser une carte statique en Java : initialiseurs statiques et initialiseurs d'instance ?

Comment initialiser une carte statique en Java : initialiseurs statiques et initialiseurs d'instance ?

DDD
DDDoriginal
2024-12-03 12:08:16555parcourir

How to Initialize a Static Map in Java: Static Initializers vs. Instance Initializers?

Initialisation d'une carte statique en Java

L'initialisation d'une carte statique en Java implique deux approches principales : les initialiseurs statiques et les initialiseurs d'instance.

Initialisateurs statiques :

Statiques les initialiseurs vous permettent d'initialiser la carte directement dans la définition de classe. Ceci est réalisé à l'aide d'un bloc statique, comme le montre l'exemple suivant :

public class Test {
    private static final Map<Integer, String> myMap = new HashMap<>();

    static {
        myMap.put(1, "one");
        myMap.put(2, "two");
    }
}

Avantages :

  • Syntaxe concise
  • Initialisation se produit au moment du chargement du cours
  • La carte est définitive et ne peut être modifiée une seule fois ensemble

Inconvénients :

  • Ne convient pas aux cartes immuables
  • Peut être difficile à lire et à entretenir

Initialiseurs d'instance (anonymes Sous-classe) :

Les initialiseurs d'instance fournissent une syntaxe alternative pour initialiser les membres statiques. Cette approche utilise une sous-classe anonyme qui remplace le constructeur par défaut :

public class Test {
    private static final Map<Integer, String> myMap2 = new HashMap<>() {
        {
            put(1, "one");
            put(2, "two");
        }
    };
}

Avantages :

  • Sucre syntaxique pour les initialiseurs statiques
  • Peut être utilisé pour créer des immuables cartes

Inconvénients :

  • Nécessite une classe anonyme supplémentaire
  • Non compatible avec les classes finales

Notes supplémentaires :

  • L'instance L'approche d'initialisation est considérée comme un sucre syntaxique pour les initialiseurs statiques.
  • Des cartes immuables peuvent être créées à l'aide d'un initialiseur statique en créant d'abord une carte mutable, puis en la rendant non modifiable à l'aide de la méthode Collections.unmodifiableMap().

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!

Déclaration:
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