ConcurrentHashMapの方がパフォーマンスは優れていますが、Hashtableが優れているシナリオはありますか?ハッシュテーブルがconcurrenthashmapより優れているシナリオはありますか?
答えて
Hashtable
はもうを使用しないでください。 Hashtable
はJava 1.0のレガシーツールであり、Java 2で導入された上位コレクションフレームワークの前にあります。
単純なハッシュマップが必要な場合は、HashMap
を使用してください。スレッドセーフティの実行が必要な場合は、ConcurrentHashMap
を使用してください。基本的で基本的でないスレッド安全性が必要な場合は、HashMap
をCollections.synchronizedMap(Map)
にラップしてください。
はい、このようなシナリオはHashtable
documentationから
存在:
さて、実際に純粋な可能性のスペクトルを見ることなく2つの特定のクラスを比較され、そのまま質問に答える
スレッドセーフな実装が必要ない場合は、Hashtableの代わりにHashMapを使用することをお勧めします。スレッドセーフな並行実装を望む場合は、Hashtableの代わりにConcurrentHashMapを使用することをお勧めします。
そうです、
Hashtable
あなたがスレッドセーフな実装を必要とするが、「欲望」高同時実装をないシナリオに適しています。これは、厳密には、ConcurrentHashMap
とHashtable
との間の排他的比較である。あなたがEnumeration
が必要な場合は、他のMap
秒Collections.enumeration(...)
を通過する必要がありながらはまた、[1]、
Hashtable
は、直接サポートしています。
1. Enumeration
また、Java 1.0クラスです。 (8+ Javaを使用している場合) `Collections.synchronizedMap(新しいHashMapの())`と `ConcurrentHashMap`を意味し、
'synchronizedMap(new HashMap())'が 'Hashtable'よりも優れているので、これは不完全なアドバイスです。 –
ハッシュテーブルは私の意見で時代遅れです –
- 1. AVLツリーはいつハッシュテーブルより優れていますか?
- 2. Java7のHashmap実装がJava8の実装よりも優先されるシナリオがありますか
- 3. なぜConcurrentHashMap :: putIfAbsentがConcurrentHashMap :: computeIfAbsentより速いのですか?
- 4. JavaScriptにsetTimeoutより優れたものがありますか?
- 5. -moz-border-radiusよりも優れたソリューションがありますか?
- 6. バンドルリポジトリよりも優れたPythonバンドルがありますか?
- 7. Djangoのフラットページより優れたものはありますか?
- 8. jdbより優れたJava CLIデバッガツールはありますか?
- 9. SQLストアドプロシージャより優れたアプローチはありますか?
- 10. CSSスプライトより優れたソリューションはありますか?
- 11. OSXのNavicatより優れたものはありますか?
- 12. Libgdxよりも優れた2Dゲームエンジンはありますか?
- 13. Spring Autowireより「new」が優先されるケースはありますか?
- 14. なぜNettyには独自のConcurrentHashMapがありますか?
- 15. どちらのシンプルなREST URLパターンがより一般的であるか、より優れていますか?
- 16. java.util.Calendarよりもjava.time.LocalDateの方が優れていますか?
- 17. "constexpr if"はswitch文よりも優れていますか?
- 18. ゴールデンセクション検索はバイナリ検索より優れていますか?
- 19. この場合、LFUはLRUより優れていますか?
- 20. <table>よりもレイアウトは優れていますか?
- 21. CSSはページレイアウト用のテーブルよりも優れていますか?
- 22. "ReferenceEquals(myObject、null)"は "myObject == null"よりも優れていますか?
- 23. PHP:静的は非静的より優れていますか?
- 24. javax.xml.soapはapache cxfよりも優れていますか?
- 25. RTMPは彗星より優れていますか?
- 26. コンパイラはインラインよりもインラインで優れていますか?
- 27. とLAMP + LAMPPはXAMPPよりも優れていますか?
- 28. なぜ `boost :: any`は` void * `より優れていますか?
- 29. DMARCまたはSPFより優先度の高いポリシーはありますか?
- 30. この場合、dynamic_castよりも優れたソリューションがありますか?
あなたはリンゴにリンゴを比較する必要がありますか
Stream
(7へのJava 2を使用している場合)Iterator
に切り替えます。 'Hashtable'は遺産に過ぎず、' Hashtable'が最後に触れられて以来、 'HashMap'には多くの改良が施されていました。 –