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"); }
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"); } };
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
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
Quelle méthode choisir ?
Le choix entre L'initialiseur statique et d'instance dépend du cas d'utilisation spécifique :
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!