Java HashMapとHashTableの違いを詳しく解説
HashMap と HashTable の違いについてよく質問されますが、今日はここでまとめてみましょう。
(1) 継承の歴史が違う
public class Hashtable extends Dictionary implements Map public class HashMap extends AbstractMap implements Map
HashtableはDictionaryクラスから継承されるのに対し、HashMapはJava 1.2で導入されたMapインターフェースの実装です。
(2) 異なるセキュリティ
HashMap は非同期ですが、HashTable はデフォルトで同期されます。つまり、HashTable はスレッドセーフであり、正しく同期されていない場合は複数のスレッドで HashTable を共有できます。 。 Java 5 以降では、HashTable の代わりとなる ConcurrentHashMap が提供されており、HashTable よりもスケーラビリティが優れています。もちろん、次の方法で HashMap を同期できます:
Map m = Collections.synchronizeMap(hashMap);
(3) 値を null にできるかどうかの類似点と相違点
HashMap では、テーブル エントリのキーまたは値として null 値を使用できます。 。 HashMap 内の空のキーにできるレコードは 1 つだけですが、任意の数のエントリを空の値にすることができます。つまり、検索キーがテーブルで見つからない場合、または検索キーが見つかっても空の値である場合、get() は null を返しますが、HashTable では null 値は返されません。 key と value で許可されます。
(4) 2 つの間のトラバーサル メソッドの内部実装は異なります
Hashtable と HashMap はどちらも Iterator イテレータを使用します。HashMap のイテレータ (Iterator) はフェイルファスト イテレータですが、HashTable の列挙イテレータはフェイルファストではありません。歴史的な理由により、Hashtable も列挙を使用します。
(5) ハッシュ値の使い方が違います
HashTableはオブジェクトのhashCodeを直接使用しますが、HashMapはハッシュ値を再計算する必要があります。
(6) 両者の内部実装における配列の初期サイズと拡張方法は異なります
HashTable のハッシュ配列のデフォルトのサイズは 11 で、増加方法は old*2+1 です。 HashMap のハッシュ配列のサイズは 16 で、2 の指数である必要があります。
読んでいただきありがとうございます、皆さんのお役に立てれば幸いです、このサイトをサポートしていただきありがとうございます!
Java HashMap と HashTable の違いの詳細な説明については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。
