Maison > Java > javaDidacticiel > Comment initialiser au mieux les cartes statiques en Java ?

Comment initialiser au mieux les cartes statiques en Java ?

DDD
Libérer: 2024-12-06 15:48:22
original
475 Les gens l'ont consulté

How to Best Initialize Static Maps in Java?

Initialisation de cartes statiques en Java : options et considérations

Les cartes statiques offrent un moyen pratique de stocker des paires clé-valeur au sein d'une classe. Lorsqu'il s'agit d'initialiser des cartes statiques, Java propose deux méthodes principales : l'initialiseur statique et l'initialiseur d'instance (en utilisant une sous-classe anonyme).

Initialiseur statique

L'initialiseur statique La syntaxe d'initialisation vous permet de définir la carte et de renseigner ses valeurs dans un bloc statique, comme le montre l'exemple ci-dessous :

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

Cette méthode est simple et ne nécessite aucune classe supplémentaire ni sucre syntaxique. Cependant, toute modification apportée à la carte après son initialisation ne sera pas reflétée dans la version statique.

Initialiseur d'instance (sous-classe anonyme)

L'initialiseur d'instance, sur le d'autre part, utilise une sous-classe anonyme pour initialiser la carte :

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

Cette approche fournit une syntaxe compacte et concise pour initialiser la carte. Cependant, cela crée une sous-classe anonyme qui peut potentiellement avoir un impact sur les performances, en particulier dans les instances fortement imbriquées.

Considérations

  • L'option d'initialisation d'instance doit être utilisée avec parcimonie en raison à des problèmes de performances.
  • Les deux méthodes créent des cartes mutables par défaut. Pour créer une carte immuable, vous pouvez utiliser la méthode Collections.unmodifiableMap() de Java :
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
Copier après la connexion

Quelle méthode choisir ?

Le choix entre L'initialiseur statique et d'instance dépend du cas d'utilisation spécifique :

  • Pour une initialisation simple et efficace, l'initialiseur statique est recommandé.
  • Pour les cartes très volumineuses ou complexes, où les performances sont un problème, l'initialiseur statique est préféré.
  • Si l'immuabilité est souhaitée, l'initialiseur statique avec Collections.unmodifiableMap() peut être utilisé.

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