Bonjour,
Je me pose une question en terme de complexité des structures de données disponibles en Java.
Je souhaite maintenir une liste de String sans doublon avec des ajouts/suppressions successifs. A tout moment, je dois être capable de savoir si une liste contient déjà une String demandée.
Alors le moyen le plus naturel de faire en Java est d'avoir un objet Arraylist<String> et vérifierchaque fois. Mais en termes de complexité, la recherche dans une liste est très supérieure à la recherche dans une table de hachage (Hashtable).
Code : Sélectionner tout - Visualiser dans une fenêtre à part monArrayListe.contains(autreString);
Etant donné que je suis sur un serveur (l'espace de stockage n'est donc pas une limite), et que cette requête de recherche se fait très souvent en comparaison des requêtes d'ajouts/suppressions, est-il plus efficace en terme de temps d'exécution de stocker mes Strings dans une Hashtable<String, Short> (Short parce que la Hashtable Java doit avoir 2 dimensions), ou dans une Arraylist de String ? En d'autres termes, est-ce que pour les List Java l'appel à la méthode contains est plus performant qu'un parcourt itératif qui s'avère coûteux sur des listes importantes ?
Partager