40 votes

Performances de la classe StringTokenizer par rapport à la méthode String.split en Java

Dans mon logiciel, j'ai besoin de diviser la chaîne en mots. J'ai actuellement plus de 19 000 000 de documents de plus de 30 mots chacun.

Laquelle des deux manières suivantes est la meilleure pour y parvenir (en termes de performances) ?

 StringTokenizer sTokenize = new StringTokenizer(s," ");
while (sTokenize.hasMoreTokens()) {

ou

 String[] splitS = s.split(" ");
for(int i =0; i < splitS.length; i++)

14voto

nes1983 Points 7046

Split dans Java 7 appelle simplement indexOf pour cette entrée, voir la source . Split doit être très rapide, proche des appels répétés de indexOf.

6voto

developer Points 2924

La spécification de l'API Java recommande d'utiliser split . Voir la documentation de StringTokenizer .

3voto

rationalSpring Points 2227

Utilisez la division.

StringTokenizer est une classe héritée qui est conservée pour des raisons de compatibilité bien que son utilisation soit déconseillée dans le nouveau code. Il est recommandé à toute personne recherchant cette fonctionnalité d'utiliser la méthode split à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X