Différences entre .Net Hashtable, Java Hashtable & amp; HashMap
Question
Ai-je raison de dire qu'une table de hachage .Net n'est pas synchronisée, alors qu'une table de hachage Java l'est? Et en même temps, un Java HashMap n'est pas synchronisé et offre de meilleures performances?
Je suis en train de réécrire une application Java qui utilise beaucoup HashMaps en C # et j'aimerais utiliser un HashTable et m'assurer que les performances sont fondamentalement équivalentes.
La solution
Je pense que ce que vous demandez, c'est si HashMaps en Java et HashTables en C # agissent à peu près de la même manière et si vous avez largement raison du point de vue des performances. HashMaps, si je me souviens bien, ne vous plaint pas si vous insérez des clés dupliquées, alors que HashTable en C # le sera.
Autres conseils
Par défaut, les tables de hachage .NET ne sont pas synchronisées, mais vous pouvez créer un wrapper synchronisé autour de celui-ci, comme suit:
Hashtable myHash = Hashtable.Synchronized(new Hashtable());