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
Libérer: 2024-12-03 12:08:16
original
684 Les gens l'ont consulté

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");
    }
}
Copier après la connexion

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");
        }
    };
}
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal