HashMapとHashTableの違い

キーの違い:コンピュータサイエンスでは、hashTableまたはhashMapは、キー(名前)と値(属性)を関連付けるデータ構造を表します。 Javaでは、HashTableは同期化され、HashMapは同期化されていないなど、この2つにはいくつか重要な違いがあります。 HashTableはnullキーを許可しません。 ただし、HashMapでは、単一のNULLキーと任意の数のNULL値を使用できます。

HashMapとhashTableは、Javaコレクションの一部であるデータ構造です。 オブジェクトを格納するためにキーと値のペアを使用します。 どちらもjava.util.Mapインタフェースを実装し、ハッシングの原則に基づいて動作するなど、いくつかの類似点を共有しています。 しかし、Javaプログラミング言語との関連でそれらを参照すると、両者には多くの違いがあります。

hashTableは、キーを使用して値を格納および取得するために使用されます。 このためには、キーは一意でなければなりません。 キーと値のペアを格納するために使用されるテーブルは、ハッシュテーブルと呼ばれます。 ハッシュテーブルは、キーをハッシュするアルゴリズムを使用して形成されます。 このハッシュ関数は、入力データに番号を割り当てるために使用され、そのデータは計算または評価された番号に対応する配列インデックスとして格納されます。

hashTableと同様に、hashMapもハッシュの同じ原則に基づいて機能します。 これは、ハッシュテーブルに基づくMapインタフェースの実装と見なすことができます。 ただし、hashTableとはいくつかの点で異なります。 hashTableは同期されていますが、HashMapは非同期です。 同期とは、パーティクル時に1つのスレッドしかテーブルを変更できないことを意味します。 したがって、hashTableに対して更新操作を実行するには、テーブルに対してロックを取得する必要があります。 その特定の時間の間、他のスレッドは待つ必要があります。 ロック解除後、他のスレッドが進行してテーブルを処理することがあります。 この2つの大きな違いは、hashTableではnullキーが許可されていないことです。 ただし、hashMapでは、単一のnullキーと任意の数のnull値を使用できます。

HashMapとHashTableの比較

ハッシュマップ

ハッシュ表

同期

非同期です

同期している(スレッドセーフ)

NULL値

キーと値としてnull値を許可します

nullを許可しません

javaの紹介

Javaバージョン1.2

Java開発キットの最初のバージョン

パフォーマンス

比較的良い

比較的悪い

広がる

AbstractMapクラスを拡張します

なかなか古いDictionaryクラスを継承

キーの繰り返し

反復子はキーを反復するために使用されます

列挙インターフェースはキーの繰り返しに使用されます

アプリケーション

非スレッドアプリケーションに向いている

通常、マルチスレッドアプリケーションに安全

直列化

直列化されていません

直列化

代替案

マルチスレッド環境では、並行ハッシュマップを使用できます。

そのような代替手段はありません

推奨されます

関連記事

  • 人気の比較: キックボクシングとボクシングの違い

    キックボクシングとボクシングの違い

    主な違い: キックボクシングとボクシングはお互いの親戚ですが、お互いに似ているわけではありません。 名前が示すように、キックボクシングはキックとボクシングに関連付けられていますが、ボクシングはボクシングにのみ関連付けられており、キックとは関連付けられていません。 キックボクシングとボクシングはどちらも素晴らしい心血管運動です。 キックボクシングはキックとボクシングのゲームです。 それは今では世界的に繁栄している格闘技と同様に戦闘スポーツの一種です。 それは空手、ムエタイと西部のボクシングのような武道の形から始まります。 キックボクシングは連続キックとパンチに関連付けられています。 それは一般的に自己防衛、一般的なフィットネスのために、または接触スポーツとして練習されています。 Kickboxingに関連したいくつかの印象的で蹴るテクニックがあります。 スポーツは2人の対戦相手の間で、ラウンドとリングの形で行われます。 対戦相手はパンチと蹴りで殴り合い、腰の上を打ちます。 スポーツは、ルールがそれぞれのルールブックで設計され、定式化されるそれに応じて様々な他の形式とスタイルから成ります。 この芸術形式は、世界の他の地域とともに日本、アメリカ、そしてタイで主に実践されています。 それは空手やボクシングなどのさまざまなスポーツからの動きと伝統を統合するハイブリッドスポーツと見なされます。
  • 人気の比較: 成長と開発の違い

    成長と開発の違い

    主な違い: 成長は通常、体格や体の発達に関連して用いられます。 開発全体は成長よりも一般的で包括的な用語です。 開発には成長が含まれますが、改善や開発の他の側面も含まれます。 成長と発展は、それが人、ビジネス、あるいは経済についてさえ話しているかどうかにかかわらず、文の中で一緒に使用されることがよくあります。 しかし、成長と発展は実際に何を意味するのか、そしてそれらは互いにどのように類似しているのか、違うのですか。 成長は通常、体の大きさや身体の発達に関連して用いられます。 開発全体は成長よりも一般的で包括的な用語です。 開発には成長が含まれますが、改善や開発の他の側面も含まれます。 例:人間の子供は自分の体が成長すると成長しています。 しかし、これは必ずしも彼が精神的に成熟しているという意味ではありません。 精神発達の彼の段階は、子供から青年期、ティーンエイジャー、ヤングアダルト、そしてアダルトになります。 サイズに加えて、成長はまた、質量または数の成長を指すこともあります。 一方で、開発は、すべての改善、スキルの習得、および品質と革新のレベルの向上を指すために使用できます。 両者の主な違いは、成長は通常定量的であるのに対し、開発は通常定性的であるということです。 それはそれに数を置くことができます、それは成長であり、他のそれは開発と呼ばれています。 例:当社の事業は昨年から20%
  • 人気の比較: IMAPとMAPIプロトコルの違い

    IMAPとMAPIプロトコルの違い

    主な違い: IMAPはInternet Message Access Protocolの略です。 IMAPはもともとスタンフォード大学で1986年に開発されました。 これはクライアント/サーバープロトコルです。 受信したEメールはインターネットサーバーによって管理されます。 モデムのような遅い接続でも動作します。 MAPIはMessaging Application Programming Interfaceの略です。 MAPIは、RPCベースの通信を使用してExchangeなどのMAPIベースのメールサーバーと対話するMicrosoftの独自技術に基づいています。 このプロトコルは、いくつかの追加機能を備えたIMAPプロトコルとまったく同じです。 IMAPはInternet Message Access Protocolの略です。 これは、ローカルクライアントからリモートWebサーバー上の電子メールメッセージにアクセスするために使用されるメールプロトコルです。 これはアプリケーション層の電子メールプロトコルです。 よく知られているポートアドレスは143です。当初、1986年にMark Cripsinによってリモートメールボックスプロトコルとして開発されました。 IMAPは電子メールの保存機能を提供します。 クライアントがそれらを削除するまで、それらはサーバーで利用可能なままです。
  • 人気の比較: ラグビーリーグとラグビーユニオンの違い

    ラグビーリーグとラグビーユニオンの違い

    主な違い: リーグではフィールドに13人のプレイヤーが参加でき、ユニオンで15人が参加できます。リーグでは6つのタックルルールに従いますが、そのようなルールはありません。 アウトオブボールはリーグでスクラムとユニオンでラインアウトを授与されます。 'Maul'と 'Ruck'は、リーグのボールを再起動することに置き換えられました。 両方のゲームで得点も異なります。 Rugby LeagueとRugby UnionはどちらもRugbyフットボールから形成されています。 ラグビーはもともと異なる信念のために分離されました。 1892年、ヨークシャーのクラブが欠けていた仕事のために選手たちにラグビーの欠場を補ったためにプロ意識の罪で対決したため、この分割は起こりました。 Rugby Football Union(RFU)は、欠けていた仕事に対してプレイヤーに補償金を支払うという提案を拒否しました。 ヨークシャークラブはランカシャークラブからサポートを受け、ノーザンラグビーフットボールユニオンを結成するために分割しました。 当初の分裂は文化と信条の違いによるものでしたが、北軍はこのスポーツのルールを劇的に変えました。 ラグビーユニオンでは、ゲームプレイ中に15人のプレイヤーがフィールドに参加できますが、リーグでは13人のプレイヤーしか参加できません。 他の大き
  • 人気の比較: チーターとパンサーの違い

    チーターとパンサーの違い

    主な違い: チーターとパンサーはどちらも本質的に野生動物です。 チーターは身長が高くて細身で、体に比べて頭が小さいです。 チーターはスピードと敏捷性で有名です。 一方、パンサーも背が高く、そしてそれらは非常に強力で、知的で、そしてエキゾチックな動物です。 チーターは世界最速の陸上動物です。 チーターは犠牲者を追い払うためにスピードの急増に依存することが知られていますが、ヒョウは静かでストーカーなスキルに頼っています。 チーターはその殺害を他の動物からの殺害を防ぐために一人で隠された場所に運びます。 チーターは3秒で時速0から60マイルまで行くことができます。 チーターは体全体に黒い斑点がある色で黄褐色です。 彼らはまた彼らの小さいサイズ、斑点を付けられたコート、小さい頭、耳および目の角から鼻の側面まで伸びる独特の「涙の縞模様」によって他の大きな猫と区別することができます。 彼らは日中に狩りをし、スピードのバーストに頼っています(短い距離で時速75マイルまで)。 ヒョウや他の大きな猫とは異なり、彼らは彼らが吸っている間に駆け出すことができますが、轟音することはできません。 ヒョウまたはヒョウは種としてトラ、ライオン、ジャガーおよびヒョウから成っているFelidae家族の属です。 パンサーという名前は天才のすべてのメンバーを指しますが、最も一般的にはブラックパンサーに割り当てられています
  • 人気の比較: フレグランスオイルとエッセンシャルオイルの違い

    フレグランスオイルとエッセンシャルオイルの違い

    主な違い :2つの油の基本的な違いは、それらの製造方法、成分、用途、そして原料によって異なります。 また、フレグランスオイルは合成品ですが、エッセンシャルオイルは天然物です。 多くの場合、人々は「エッセンシャルオイル」と「フレグランスオイル」という用語を混同することが知られており、それらを同じ意味で使用していると見られています。 両方の油は、時には同様の目的に使用されますが、それらは化学的に異なります。 彼らはまた彼らの価格や資産が異なります。 この記事はさらに2つのオイルを区別します。 エッセンシャルオイルは植物のさまざまな部分から抽出される液体です。 これらの液体は花、葉、樹皮、種子、根、そして植物の他の組織から自然に取り除かれます。 しかし、これらの液体は本当に油ではありません。 それらは植物性植物から集められるただ揮発性で芳香性の物質です。 だからこそ、これらの液体は精油を製造するために非常に長くて退屈な水蒸気蒸留プロセスを経ています。 一方、フレグランスオイルは、エッセンシャルオイルから派生した合成製品です。 彼らは通常石油とコールタールを使用して作られています。 そして、それらは特に天然物の香りを模倣するように設計されています。 それらはまた香油、芳香油または人工香料とも呼ばれる。 エッセンシャルオイルは、その芳香性のために医薬品に広く使用されており、これらのオイルの中毒
  • 人気の比較: 核分裂と核融合の違い

    核分裂と核融合の違い

    主な違い: 核分裂と核融合は、エネルギーが放出される2つの核過程または反応です。 核融合は重水素と三重水素のような軽い核の組み合わせによって起こります。 一方、核分裂では、ウラン235やプルトニウム239のような核がより軽い核に分裂します。 核分裂は核融合よりも達成が比較的容易です。 しかし、核融合は核分裂よりも多くのエネルギーを放出します。 核融合反応は、2つ以上の原子を結合して新しい原子を形成するプロセスを伴います。 より重い元素の核を形成するためにそれらが衝突して融合するので、それは核に関して起こります。 この過程は多くのエネルギーを生み出します。 核融合反応の最も一般的な例は、太陽の下で起こる水素の核融合です。 核融合は極度の高温を利用して行われます。 これらの温度を達成するのは簡単ではありません。 これとは別に、放出された高温ガスを取り扱うためには多くの安全上の懸念が要求される。 核融合は星の中で自然に起こります。 しかし核融合爆弾では核分裂爆弾によって始められます。 核分裂は、重元素の核が軽元素の核に分裂するプロセスです。 元素の核は2つの部分に分けられます。 電気力が核力を克服し、核が分裂すると、核分裂が起こります。 大きな同位体に中性子が衝突すると核分裂が起こります。 この衝突により、この大きな同位体は2つ以上の元素に分かれます。 核分裂では、中性子もエネルギーととも
  • 人気の比較: .NETとASP.NETの違い

    .NETとASP.NETの違い

    主な違い: .NETは、マイクロソフトが開発したソフトウェアフレームワーク/インフラストラクチャで、次世代のアプリケーションおよびXML Webサービスの開発、実行、および展開に使用されています。 ASP.NETは.NETフレームワークのWebアプリケーション部分であり、動的なWebアプリケーションとWebサービスをあらゆる.NET言語で構築するために使用されます。 .NETは、コンソールアプリケーション、ウィンドウサービス、Webサービス、およびWebアプリケーションなどのアプリケーションを開発、実行、および展開するためにMicrosoftが開発したソフトウェアフレームワーク/インフラストラクチャです。 ASP.NETは動的Webページを構築するために使用される.NET FrameworkのWebアプリケーションです。 したがって、.NETはコンソールアプリケーションとWebアプリケーションの両方をサポートできるのに対して、違い
  • 人気の比較: 犬と猫の食べ物の違い

    犬と猫の食べ物の違い

    主な違い: ドッグフードとキャットフードの基本的な違いは、ドッグフードにはキャットフードに比べてビタミンAが多く含まれていることです。 犬と猫の違いは、犬は雑食動物で、猫は肉食動物です。 ほとんどの犬と猫の飼い主は、犬と猫の食べ物は同じであると考えています。 しかし、獣医師は厳しくそれを禁止しています。 犬と猫は、要求や習慣が異なる2種類のペットです。 これら2つの種を互いに比較することはできません。 以下の文脈では、ドッグフードとキャットフードの主な違いを知るようになるでしょう。 だれかが先に進む前に、犬と猫の間で1つの点が非常に明確であるべきです、それは彼らの食物を容易に区別するでしょう、犬は雑食動物であり、猫は肉食動物です。 ドッグフードは、犬による摂取のために意図的に提案された食品です。 犬は肉食動物なので、鋭くて先のとがった歯を持っており、他の肉食動物のように肉の摂取に適した短い消化管を持っています。 ローフードダイエットは犬に受け入れられますか、または何人かの犬所有者は健康的な食料品店から材料を買うことによって彼らのペットの犬のために食物を準備することを好みます。 通常の人間の食べ物は犬に有毒です。 ブドウ、チョコレート、タマネギ、トマト、レーズンなど、犬の健康に非常に危険です。 キャットフードは、猫による摂取のために意図的に提案された食品です。 キャットフードの必須成分

エディターズチョイス

細菌と細菌の違い

主な違い: 細菌は原核生物のグループに属する単細胞微生物です。 生殖とは、微生物、特にあらゆる病気を引き起こす可能性があるものを指すのに使用される非医学用語です。 細菌の例には、アメーバ、真菌、バクテリア、リケッチア、ウイルス、その他たくさんのものが含まれます。 したがって、いくつかのバクテリアはGermsとしても知られています。 細菌は有害で病気、感染症、病気の原因となる微生物です。 これらの細菌は基本的に病原体です。 病原菌は、ウイルス、バクテリア、菌類、寄生虫の4つの主要なグループに分類することができます。 いくつかのバクテリアも病気を引き起こします、そしてそれ故に細菌であると考えられます。 例えば、MRSA(メチシリン耐性黄色ブドウ球菌)は、感染症を引き起こす細菌であり、それゆえ、細菌と呼ばれています。 バクテリアと細菌の重要な特徴のいくつかは以下の通りです - バクテリア 細菌 定義 細菌は単細胞微生物であり、原核生物のグループに属しています。 細菌は単細胞または多細胞の微生物で、有害であり、病気、感染症、病気の原因となります。 有用 いくつかの細菌は有用です。 すべてが何らかの害を及ぼすか、あるいは他の種類の害をもたらします。 例 食物の消化と栄養素の吸収を促進するのに役立ちます。 炭疽菌は、炭疽病を引き起こす細菌性細菌の名前です。 再生 自分で再現できるものもあります。