Java で TreeMap から同期された Map を取得するには、Collection インターフェースの組み込みメソッド「synchronizedMap()」を使用できます。ここで、TreeMap は NavigableMap インターフェイスを実装するために使用されるクラスです。マップの要素をツリー構造に保存します。これは、キーと値のペアを並べ替えられた順序で保存するための効率的な代替手段を提供します。デフォルトでは、TreeMap は同期されていません。この記事では、同期の必要性とその具体的な実装について、サンプルプログラムを交えて解説します。
ツリーマップの同期マップ
ツリーマップはスレッドセーフではありません。つまり、ツリーマップをマルチスレッド環境に実装すると、複数のスレッドが調整なしで同時にアクセスして変更できることになります。これにより、データの不整合や要素の予期しない動作が発生する可能性があります。手術の結果にも影響を与える可能性があります。
したがって、synchronizedMap() を使用して TreeMap 要素へのアクセスを同期する必要があります。このメソッドは、元の TreeMap の周囲にラッパーを作成し、スレッドがそれにアクセスまたは変更しようとするとそれをロックします。
synchronizedMap() は、TreeMap コレクションのインスタンスをパラメータとして受け取り、そこから同期された Map を返す Collections クラスの静的メソッドです。
###文法###
リーリー
ここで、「Collections」はコレクションインターフェースのクラスです。
TreeMap の一般的な構文は次のとおりです -
###文法###
リーリー
###方法###
まず、「java.util」パッケージをインポートして、TreeMap クラスを有効にします。
次に、キーの型が String で、値が次のような TreeMap を作成します。
整数型。
組み込みメソッド「put()」を使用して、いくつかの要素をコレクションに保存します
ここで、これらの要素を同期し、Map 型の変数に保存します。
最後に、新しい同期されたマップを印刷して終了します。 -
例 1-
次の例は、synchronizedMap() を使用して、指定された TreeMap を同期する方法を示しています。
リーリー
###出力###
リーリー
###方法###
まず、「java.util」パッケージをインポートして、TreeMap クラスを有効にします。
次に、キーがString型、値がInteger型のTreeMapを作成します
組み込みメソッド「put()」を使用して、いくつかの要素をコレクションに保存します
ここで、synchronizedMap() メソッドを使用してこれらの要素を同期し、新しい Map コレクションに保存します。
最後に、同期ブロックを定義します。このブロック内では、for-each ループを使用する「keySet()」メソッドを使用して項目が出力されます。 -
例 2-
次の例では、synchronizedMap() メソッドと synchronized ブロックを使用して、指定された TreeMap を同期します。
リーリー
###出力###
リーリー
###結論は###
同期は、調整を確立し、2 つ以上のアクティビティ間の正しい通信を確保するプロセスです。 TreeMap の同期がずれるとデータの不整合が生じる可能性があるため、同期する必要があります。組み込みメソッド「Collections.synchronizedMap()」は、このタスクを実行するためのより便利な方法です。 -
以上がJava TreeMapから同期マップを取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。