public String intern() interns a String in the common string
> memory pool. Example: String potentialNapoleanQuote =
> new String ("Able was I, ere I saw Elba!"); potentialNapoleanQuote.intern ();.
Attention, il ne faut pas trop regarde ce code � 2 balles ?
Que ceux qui font un toto = new String( "TOTO" ) au lieu de
toto = "TOTO" me disent pourquoi. Le code suivant fait exactement
la m�me chose (en plus rapide) :
String potentialNapoleanQuote = "Able was I, ere I saw Elba!";
> Il appara�t donc que prefix.intern() permet d'ajouter une cha�ne
> dans le pool de cha�nes sauvegard� en interne et d'acc�l�rer ensuite
> la comparaison de deux cha�nes en utilisant l'op�rateur == plut�t que
> la m�thode equals().
C'est exactement cela. Cependant, � retenir :
- Le intern() est beaucoup plus long que le equals, donc pas
besoin de l'utiliser si c'est uniquement pour faire 1 seul ==. Par
contre, dans une boucle tr�s longue, ca peut �tre int�ressant.
- Les literaux sont automatiquement inclus dans le pool,
donc ne pas faire "TOTO".intern().
- Dans l'exemple original, faire un intern pour ensuite faire
des equals me parait bien inutile.
- Pour r�pondre � la question initiale, non, ca ne change rien car
le get d'une HashMap (c'est l'exemple que j'ai regard� pour v�rifier)
utilise le hashcode et le equals.
Olivier
