Votre question n'est pas claire ("codes annexes"? "HashMap"?), Mais je suppose que vous demandez quelle est la manière la plus efficace de construire une chaîne.
En général, un StringBuilder est plus efficace qu'un StringBuffer, car les méthodes de ce dernier sont synchronisées et ce n'est qu'une surcharge inutile pour un objet confiné par un thread. Mais il y a ensuite la question de savoir si l'utilisation d'un StringBuilder est plus efficace qu'une simple concaténation de chaîne. Et la réponse à cela est que "cela dépend".
Si vous faites beaucoup de concaténations séparées, un StringBuilder est généralement plus rapide; par exemple.
String s = "";
for (int i = 0; i < 1000; i++) {
s += "X";
}
Si vous faites tous les concaténations dans une expression, il fait sans doute pas de différence:
String s = "Hi " + name + ". It is a might fine " + day + ".";
En effet, le compilateur Java transformer en code qui crée un StringBuilder et exécute une série d'appels append
.
Cependant, il s'agit d'une légère sur-simplification. D'une part, si votre application peut facilement calculer la longueur de la chaîne finale, vous pouvez obtenir de meilleures performances en utilisant un StringBuilder en allouant au constructeur la bonne capacité initiale. D'autre part, le compilateur évaluera concaténations de littéraux de chaîne avant la main, si
String s = "Hi " + "mom" + ". is a might fine " + "tuesday" + ".";
sera plus rapide que:
StringBuilder sb = new StringBuilder();
sb.append("Hi ");
sb.append("mom");
sb.append(". is a might fine ");
sb.append("tuesday");
sb.append(".");
String s = sb.toString();
Mais la ligne de fond est que il n'a probablement pas d'importance . À moins de faire énormément de construction de chaînes, il y a de fortes chances que l'impact sur la performance globale de votre application soit minime.
Comment voulez-vous utiliser hashmap pour ajouter des codes? – Gadolin