モジュール java.base
パッケージ java.util.concurrent

クラスConcurrentHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.ConcurrentHashMap<K,V>
型パラメータ:
K - このマップで保持されるキーの型
V - マップされる値の型
すべての実装されたインタフェース:
Serializable, ConcurrentMap<K,V>, Map<K,V>

public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable
取得の完全な同時性および予想される高い更新平行性をサポートするハッシュ表です。 このクラスは、Hashtableと同じ機能仕様に従い、Hashtableの各メソッドに対応するバージョンのメソッドを含みます。 ただし、すべての操作がスレッド・セーフである場合でも、取得操作にロックは含まれないため、テーブル全体がロックされてすべてのアクセスが拒否されることはありません このクラスは、そのスレッドの安全性に依存するが、その同期の詳細には依存しないプログラムでHashtableと完全に相互運用できます。

通常、取得操作(getを含む)ではブロックは実行されないため、更新操作とオーバーラップする場合があります(putおよびremoveを含む)。 取得では、開始時に保持している更新操作のうち、最後に完了した更新操作の結果が反映されます。 (つまり、指定されたキーの更新操作によって、更新された値を報告するそのキーの(null以外の)取得との間にhappens-before関係が生まれます。) putAllclearなどの集計操作では、並行取得は一部のエントリの挿入または削除だけを反映する可能性があります。 同様に、Iterator、SpliteratorおよびEnumerationは、ある時点またはイテレータおよび列挙の作成以降のハッシュ・テーブルの状態を反映する要素を返します。 これらがConcurrentModificationExceptionをスローすることはありません しかし、一度に1つのスレッドのみがイテレータを使用するように設計されています。 sizeisEmptyおよびcontainsValueを含む集約ステータス・メソッドの結果は、通常、他のスレッドでマップの並行更新が行われていない場合にのみ有効であることに留意してください。 それ以外の場合、これらのメソッドの結果は一時的な状態を反映しているため、モニタリングや推定を目的とする場合には問題ありませんが、プログラムの制御には適していません。

このテーブルは、競合(つまり、別個のハッシュ・コードを持っているが、テーブル・サイズを法とする同じスロットに入るキー)の数が多すぎる場合に動的に拡張され、予想される平均効果として(サイズ変更の負荷係数のしきい値0.75に対応して)マッピング当たりおよそ2個のビンを保持します。 マッピングが追加および削除されると、この平均との差違が大きくなることがありますが、全体としては、ハッシュ・テーブルに関して一般に受け入れられている時間と容量のトレードオフが維持されます。 ただし、このハッシュ・テーブルまたはその他の種類のハッシュ・テーブルのサイズ変更は、相対的に低速な操作である可能性があります。 可能な場合は、サイズの推定値をコンストラクタのオプション引数である initialCapacityとして指定することをお薦めします。 コンストラクタの追加のオプション引数であるloadFactorは、指定された要素数に対して割り当てる領域の量を計算するために使用されるテーブル密度を指定することにより、テーブルの初期容量をカスタマイズする追加手段を提供します。 また、このクラスの前のバージョンとの互換性を保つため、予想されるconcurrencyLevelを初期サイズ設定の追加のヒントとしてコンストラクタにオプションで指定することもできます。 まったく同じhashCode()を持つキーを数多く使用すると、ハッシュ・テーブルのパフォーマンスは確実に低下します。 影響を軽減するため、キーがComparableである場合は、このクラスでキー間の比較順序を使用してキーの重複を解消できます。

キーのみが対象であり、マップされる値が(おそらく一時的に)使用されないか、またはすべてが同じマッピング値を取る場合は、ConcurrentHashMapのSet展開を(newKeySet()またはnewKeySet(int)を使用して)作成または(keySet(Object)を使用して)表示できます。

ConcurrentHashMapは、LongAdder値を使用し、computeIfAbsentを使用して初期化することにより、スケーラブルな周波数マップ(ヒストグラムまたはマルチ・セットの形式)として使用できます。 たとえば、ConcurrentHashMap<String,LongAdder> freqsにカウントを追加するには、freqs.computeIfAbsent(key, k -> new LongAdder()).increment();を使用

このクラスとそのビューおよびイテレータは、MapおよびIteratorインタフェースのオプション・メソッドすべてを実装します。

Hashtableと同様に(HashMapとは異なる)、このクラスは、キーまたは値としてnullが使用されることを許可しません

ConcurrentHashMapは、ほとんどのStreamメソッドとは異なり、たとえば共有レジストリ内の値のスナップショット・サマリーを計算するときに、他のスレッドで並行して更新されるマップでも安全(かつ多くの場合適切に)適用されるように設計された一連の順次および並列の一括オペレーションをサポートします。 それぞれ4つのフォームを持つ3種類の操作があり、引数、戻り値としてキー、値、エントリ、および(キー、値)のペアを受け取る関数があります。 ConcurrentHashMapの要素は特定の方法で順序付けられておらず、異なる並列実行で異なる順序で処理される可能性があるため、指定された関数の正確性が任意の順序や、計算の進行中に一時的に変更される可能性があるその他のオブジェクトまたは値に依存しないようにしてください。また、forEachアクションの場合を除き、副作用がないことが理想です。 Map.Entryオブジェクトに対する一括オペレーションでは、setValueメソッドはサポートされません。

  • forEach: 各要素に対して所定のアクションを実行します。 バリアント形式は、アクションを実行する前に各要素に特定の変換を適用します。
  • search: 各要素に与えられた関数を適用すると、最初に利用可能な非nullの結果が返されます。結果が見つかると、さらに検索をスキップします。
  • reduce: 各要素を累積します。 指定されたリダクション関数は順序に依存できません(つまり、結合性と交換可能性を持つ必要があります)。 5つのバリアントがあります。
    • 単純なリダクション。 (対応する戻り値の型がないため、(キー、値)関数引数に対応するこのメソッドの形式はありません。)
    • 各要素に適用された特定の関数の結果を累積するマップされたリダクションです。
    • 特定の基準値を使用したスカラーdouble、long、intへのリダクションです。

これらの一括オペレーションは、parallelismThreshold引数を受け入れます。 現在のマップ・サイズが指定されたしきい値より小さいと推定された場合は、メソッドが逐次的に進行します。 Long.MAX_VALUEを使用すると、すべての並列処理が抑制されます。 1を使用すると、すべての並列計算に使用されるForkJoinPool.commonPool()をフル活用するのに十分な数のサブタスクにパーティション化することによって、最大限の並列処理が行われます。 通常は、最初にこれらの極値のいずれかを選択し、その後オーバーヘッドとスループットのバランスを取った中間値を使用してパフォーマンスを計測します。

一括オペレーションの並行性プロパティは、ConcurrentHashMapの並行性プロパティから得られます。get(key)および関連するアクセス・メソッドからnull以外の結果が返されると、関連する挿入または更新との間にhappens-before関係が生まれます。 一括オペレーションの結果は、これらの要素単位の関係の構成を反映します(ただし、なんらかの方法で休止していることがわかった場合を除き、マップ全体に関して原子的である必要はありません)。 逆に、マップ内のキーと値がnullになることはないため、nullは結果が現在存在しないことを確実かつ原子的に示す役割を果たします。 このプロパティを保持するため、nullはすべての非スカラー・リダクション・オペレーションの暗黙的な基準として機能します。 double、longおよびintのバージョンでは、この基準は他の値と結合されたときにその値を返すもの(つまり、リダクションの識別要素)である必要があります。 0を基準とする合計の計算やMAX_VALUEを基準とする最小数の計算など、ほとんどの一般的なリダクションにはこれらのプロパティがあります。

引数として指定される検索および変換関数も、同様に結果が存在しないことを示すためにnullを返す必要があります(その場合、結果は使用されません)。 マップされたリダクションの場合は、これによってフィルタとして機能する変換も可能になります。要素が結合されない場合は、null(プリミティブ特化の場合は識別基準)が返されます。 変換とフィルタリングの複合処理を作成するには、それらを検索またはリデュースのオペレーションで使用する前に、この「nullは現在何も存在しないことを意味する」というルールに従ってそれらを自分で構成します。

Entry引数を受け入れたり、返したりするメソッドは、キーと値の関連付けを保持します。 これらは、たとえば最大値のキーを見つけるときに便利です。 単純なEntry引数は、new AbstractMap.SimpleEntry(k,v)を使用して指定できます。

一括オペレーションは、指定された関数の使用時に検出された例外をスローして、突然完了することがあります。 このような例外を処理するときは、他の並列実行されている関数も例外をスローした可能性があることや、最初の例外が発生しなかった場合は他の並列実行されている関数が例外をスローしたことに留意してください。

逐次形式に比べて並列形式の方が高速化されることは、一般的ですが保証はされません。 計算を並列化するためのベースとなる作業が計算自体より高負荷である場合、小さいマップに対する簡単な関数が関与する並列オペレーションは、逐次形式より実行速度が低くなる可能性があります。 同様に、すべてのプロセッサが無関係のタスクの実行でビジー状態である場合は、並列化しても実際にはそれほど多くの並列処理は行われない可能性があります。

すべてのタスク・メソッドに対するすべての引数は、null以外である必要があります。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.5
関連項目:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static class 
    キーのSetとしてのConcurrentHashMapのビューです。オプションで、共通の値にマップすることによって追加を有効化できます。

    クラス java.util.AbstractMapで宣言されたネストされたクラス/インタフェース

    AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>

    インタフェース java.util.Mapで宣言されたネストされたクラス/インタフェース

    Map.Entry<K,V>
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルトの初期テーブル・サイズ(16)で、新しい空のマップを作成します。
    ConcurrentHashMap(int initialCapacity)
    動的にサイズを変更せずに、指定された数の要素を格納できる初期テーブル・サイズで、新しい空のマップを作成します。
    ConcurrentHashMap(int initialCapacity, float loadFactor)
    指定された要素数(initialCapacity)と初期テーブル密度(loadFactor)に基づく初期テーブル・サイズで、新しい空のマップを作成します。
    ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
    指定された数の要素(initialCapacity)、初期表の密度が(loadFactor)、および同時にスレッド(concurrencyLevel)を更新する数に基づいて、初期表サイズで新しい空のマップを作成します。
    ConcurrentHashMap(Map<? extends K,? extends V> m)
    指定されたマップと同じマッピングで新しいマップを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    すべてのマッピングをマップから削除します。
    compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
    指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。
    computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
    指定されたキーがまだ値に関連付けられていない場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。
    computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
    指定されたキーの値が存在する場合、キーと現在マップされている値から新しいマッピングの計算を試みます。
    boolean
    この表の指定された値にキーがマップされているかどうかをテストします。
    boolean
    指定されたオブジェクトが、この表のキーかどうかを判定します。
    boolean
    このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
    表にある値のリストを返します。
    このマップに含まれるマッピングのSetビューを返します。
    boolean
    指定されたオブジェクトがこのマップと等しいかどうかを比較します。
    void
    forEach(long parallelismThreshold, BiConsumer<? super K,? super V> action)
    各(key, value)に対して指定されたアクションを実行します。
    <U> void
    forEach(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, Consumer<? super U> action)
    各(キー, 値)のnullでない各変換に対し、指定されたアクションを実行します。
    void
    forEachEntry(long parallelismThreshold, Consumer<? super Map.Entry<K,V>> action)
    各エントリに対して指定されたアクションを実行します。
    <U> void
    forEachEntry(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, Consumer<? super U> action)
    各エントリのnull以外の各変換に対して指定されたアクションを実行します。
    void
    forEachKey(long parallelismThreshold, Consumer<? super K> action)
    各キーに対して指定されたアクションを実行します。
    <U> void
    forEachKey(long parallelismThreshold, Function<? super K,? extends U> transformer, Consumer<? super U> action)
    各キーのnull以外の各変換に対して指定されたアクションを実行します。
    void
    forEachValue(long parallelismThreshold, Consumer<? super V> action)
    各値に対して指定されたアクションを実行します。
    <U> void
    forEachValue(long parallelismThreshold, Function<? super V,? extends U> transformer, Consumer<? super U> action)
    各値のnull以外の各変換に対して指定されたアクションを実行します。
    get(Object key)
    指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
    getOrDefault(Object key, V defaultValue)
    指定されたキーがマップされる値を返します。このマップにそのキーのマッピングが含まれていない場合は、指定されたデフォルト値を返します。
    int
    このMapのハッシュ・コード値(つまり、マップ内の各キーと値のペアのkey.hashCode() ^ value.hashCode()の合計)を返します。
    boolean
    このマップがキーと値のマッピングを保持しない場合にtrueを返します。
    表にあるキーの列挙を返します。
    このマップに含まれるキーのSetビューを返します。
    keySet(V mappedValue)
    このマップ内のキーのSetビューを返します。追加(つまり、Collection.add(E)およびCollection.addAll(Collection))には、指定された共通のマップされた値を使用します。
    long
    マッピングの数を返します。
    merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
    指定されたキーがまだ(nullでない)値と関連付けられていない場合は、指定された値に関連付けます。
    指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。
    newKeySet(int initialCapacity)
    指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。
    put(K key, V value)
    このテーブルで、指定されたキーを指定された値にマップします。
    void
    putAll(Map<? extends K,? extends V> m)
    指定したマップからこのマップにすべてのマッピングをコピーします。
    putIfAbsent(K key, V value)
    指定されたキーがまだ値と関連付けられていない場合は、指定された値に関連付けます。
    <U> U
    reduce(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
    指定されたリデューサを使用して値を結合することにより、すべての(キー、値)ペアの指定された変換の累積結果を返します。結果がない場合はnullを返します。
    reduceEntries(long parallelismThreshold, BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>> reducer)
    指定されたリデューサを使用して値を結合することにより、すべてのエントリの累積結果を返します。結果がない場合はnullを返します。
    <U> U
    reduceEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
    指定されたリデューサを使用して値を結合することにより、すべてのエントリの指定された変換の累積結果を返します。結果がない場合はnullを返します。
    double
    reduceEntriesToDouble(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,V>> transformer, double basis, DoubleBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
    int
    reduceEntriesToInt(long parallelismThreshold, ToIntFunction<Map.Entry<K,V>> transformer, int basis, IntBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
    long
    reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
    reduceKeys(long parallelismThreshold, BiFunction<? super K,? super K,? extends K> reducer)
    指定されたリデューサを使用して値を結合することにより、すべてのキーの累積結果を返します。結果がない場合はnullを返します。
    <U> U
    reduceKeys(long parallelismThreshold, Function<? super K,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
    指定されたリデューサを使用して値を結合することにより、すべてのキーの指定された変換の累積結果を返します。結果がない場合はnullを返します。
    double
    reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
    int
    reduceKeysToInt(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
    long
    reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
    double
    reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K,? super V> transformer, double basis, DoubleBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
    int
    reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K,? super V> transformer, int basis, IntBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
    long
    reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K,? super V> transformer, long basis, LongBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
    reduceValues(long parallelismThreshold, BiFunction<? super V,? super V,? extends V> reducer)
    指定されたリデューサを使用して値を結合することにより、すべての値の累積結果を返します。結果がない場合はnullを返します。
    <U> U
    reduceValues(long parallelismThreshold, Function<? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
    指定されたリデューサを使用して値を結合することにより、すべての値の指定された変換の累積結果を返します。結果がない場合はnullを返します。
    double
    reduceValuesToDouble(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
    int
    reduceValuesToInt(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
    long
    reduceValuesToLong(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer)
    指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
    キー(およびそれに対応する値)をこのマップから削除します。
    boolean
    remove(Object key, Object value)
    指定された値にキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
    replace(K key, V value)
    キーが値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
    boolean
    replace(K key, V oldValue, V newValue)
    指定された値にキーが現在マッピングされている場合にのみ、そのキーのエントリを置換します。
    <U> U
    search(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> searchFunction)
    指定された検索関数を各(キー、値)に適用し、nullでない結果を返します(存在しない場合はnull)。
    <U> U
    searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> searchFunction)
    各エントリに指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。
    <U> U
    searchKeys(long parallelismThreshold, Function<? super K,? extends U> searchFunction)
    各キーに指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。
    <U> U
    searchValues(long parallelismThreshold, Function<? super V,? extends U> searchFunction)
    各値に指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。
    int
    このマップ内のキー値マッピングの数を返します。
    このマップの文字列表現を返します。
    このマップに含まれる値のCollectionビューを返します。

    クラス java.util.AbstractMapで宣言されたメソッド

    clone, isEmpty, size

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェース java.util.concurrent.ConcurrentMapで宣言されたメソッド

    forEach, replaceAll
  • コンストラクタの詳細

    • ConcurrentHashMap

      public ConcurrentHashMap()
      デフォルトの初期テーブル・サイズ(16)で、新しい空のマップを作成します。
    • ConcurrentHashMap

      public ConcurrentHashMap(int initialCapacity)
      動的にサイズを変更せずに、指定された数の要素を格納できる初期テーブル・サイズで、新しい空のマップを作成します。
      パラメータ:
      initialCapacity - 実装は、この多数の要素を格納するように内部のサイズ設定を実行する。
      例外:
      IllegalArgumentException - 要素の初期容量が負の場合
    • ConcurrentHashMap

      public ConcurrentHashMap(Map<? extends K,? extends V> m)
      指定されたマップと同じマッピングで新しいマップを作成します。
      パラメータ:
      m - マップ
    • ConcurrentHashMap

      public ConcurrentHashMap(int initialCapacity, float loadFactor)
      指定された要素数(initialCapacity)と初期テーブル密度(loadFactor)に基づく初期テーブル・サイズで、新しい空のマップを作成します。
      パラメータ:
      initialCapacity - 初期容量。 負荷係数を指定すると、実装はこの数の要素を格納できるように内部のサイズ設定を行う。
      loadFactor - 初期テーブル・サイズを設定するための負荷係数(テーブル密度)
      例外:
      IllegalArgumentException - 要素の初期容量が負であるか、または負荷係数が正でない場合
      導入されたバージョン:
      1.6
    • ConcurrentHashMap

      public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
      指定された数の要素(initialCapacity)、初期表の密度が(loadFactor)、および同時にスレッド(concurrencyLevel)を更新する数に基づいて、初期表サイズで新しい空のマップを作成します。
      パラメータ:
      initialCapacity - 初期容量。 負荷係数を指定すると、実装はこの数の要素を格納できるように内部のサイズ設定を行う。
      loadFactor - 初期テーブル・サイズを設定するための負荷係数(テーブル密度)
      concurrencyLevel - 並行して更新しているスレッドの推定数。 実装はこの値をサイズ設定のヒントとして使用できる。
      例外:
      IllegalArgumentException - 初期容量が負であるか、負荷係数またはconcurrencyLevelが正でない場合
  • メソッドの詳細

    • size

      public int size()
      このマップ内のキー値マッピングの数を返します。 マップ内にInteger.MAX_VALUEより多くの要素がある場合は、Integer.MAX_VALUEを返します。
      定義:
      インタフェースMap<K,V>内のsize
      オーバーライド:
      クラスAbstractMap<K,V>size
      戻り値:
      このマップ内のキーと値のマッピングの数
    • isEmpty

      public boolean isEmpty()
      このマップがキーと値のマッピングを保持しない場合にtrueを返します。
      定義:
      インタフェースMap<K,V>内のisEmpty
      オーバーライド:
      クラスAbstractMap<K,V>isEmpty
      戻り値:
      このマップがキーと値のマッピングを保持しない場合はtrue
    • get

      public V get(Object key)
      指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。

      つまり、このメソッドは、key.equals(k)となるキーkから値vへのマッピングがこのマップに含まれている場合はvを返し、それ以外の場合はnullを返します。 (このようなマッピングは1つのみ存在できます。)

      定義:
      インタフェースMap<K,V>内のget
      オーバーライド:
      クラスAbstractMap<K,V>get
      パラメータ:
      key - 関連付けられた値が返されるキー
      戻り値:
      指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合はnull
      例外:
      NullPointerException - 指定されたキーがnullである場合
    • containsKey

      public boolean containsKey(Object key)
      指定されたオブジェクトが、この表のキーかどうかを判定します。
      定義:
      インタフェースMap<K,V>内のcontainsKey
      オーバーライド:
      クラスAbstractMap<K,V>containsKey
      パラメータ:
      key - 使用可能なキー
      戻り値:
      equalsメソッドによって決定されるように、指定されたオブジェクトがこのテーブル内のキーである場合にのみtrue。それ以外の場合はfalse
      例外:
      NullPointerException - 指定されたキーがnullである場合
    • containsValue

      public boolean containsValue(Object value)
      このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。 ノート: このメソッドは、マップの完全なトラバーサルを必要とする場合があり、containsKeyメソッドに比べてはるかに低速です。
      定義:
      インタフェースMap<K,V>内のcontainsValue
      オーバーライド:
      クラスAbstractMap<K,V>containsValue
      パラメータ:
      value - このマップにあるかどうかが判定される値
      戻り値:
      このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
      例外:
      NullPointerException - 指定された値がnullである場合
    • put

      public V put(K key, V value)
      このテーブルで、指定されたキーを指定された値にマップします。 キーや値はnullにすることはできません。

      valueを取得するには、元のkeyに等しいkeyを指定してgetメソッドを呼び出します。

      定義:
      インタフェースMap<K,V>内のput
      オーバーライド:
      クラスAbstractMap<K,V>put
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull
      例外:
      NullPointerException - 指定されたキーまたは値がnullの場合
    • putAll

      public void putAll(Map<? extends K,? extends V> m)
      指定したマップからこのマップにすべてのマッピングをコピーします。 これにより、マップが指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。
      定義:
      インタフェースMap<K,V>内のputAll
      オーバーライド:
      クラスAbstractMap<K,V>putAll
      パラメータ:
      m - このマップに格納されるマッピング
    • remove

      public V remove(Object key)
      キー(およびそれに対応する値)をこのマップから削除します。 そのキーがマップにない場合は、何も行いません。
      定義:
      インタフェースMap<K,V>内のremove
      オーバーライド:
      クラスAbstractMap<K,V>remove
      パラメータ:
      key - 削除するキー
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull
      例外:
      NullPointerException - 指定されたキーがnullである場合
    • clear

      public void clear()
      すべてのマッピングをマップから削除します。
      定義:
      インタフェースMap<K,V>内のclear
      オーバーライド:
      クラスAbstractMap<K,V>clear
    • keySet

      public ConcurrentHashMap.KeySetView<K,V> keySet()
      このマップに含まれるキーのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットは要素の削除をサポートしており、対応するマッピングをこのマップから削除できます。削除は、Iterator.removeSet.removeremoveAllretainAllおよびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。

      ビューのイテレータおよびスプリッテレータは、弱一貫性を持っています

      ビューのspliteratorは、Spliterator.CONCURRENTSpliterator.DISTINCTおよびSpliterator.NONNULLを報告します。

      定義:
      インタフェースMap<K,V>内のkeySet
      オーバーライド:
      クラスAbstractMap<K,V>keySet
      戻り値:
      セット・ビュー
    • values

      public Collection<V> values()
      このマップに含まれる値のCollectionビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションは要素の削除をサポートしており、対応するマッピングをこのマップから削除できます。削除は、Iterator.removeCollection.removeremoveAllretainAllおよびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。

      ビューのイテレータおよびスプリッテレータは、弱一貫性を持っています

      ビューのspliteratorは、Spliterator.CONCURRENTおよびSpliterator.NONNULLを報告します。

      定義:
      インタフェースMap<K,V>内のvalues
      オーバーライド:
      クラスAbstractMap<K,V>values
      戻り値:
      コレクション・ビュー
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      このマップに含まれるマッピングのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットは要素の削除をサポートします。Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションで対応するマッピングをマップから削除します。

      ビューのイテレータおよびスプリッテレータは、弱一貫性を持っています

      ビューのspliteratorは、Spliterator.CONCURRENTSpliterator.DISTINCTおよびSpliterator.NONNULLを報告します。

      定義:
      インタフェースMap<K,V>内のentrySet
      戻り値:
      セット・ビュー
    • hashCode

      public int hashCode()
      このMapのハッシュ・コード値(つまり、マップ内の各キーと値のペアのkey.hashCode() ^ value.hashCode()の合計)を返します。
      定義:
      インタフェースMap<K,V>内のhashCode
      オーバーライド:
      クラスAbstractMap<K,V>hashCode
      戻り値:
      マップのハッシュ・コード値
      関連項目:
    • toString

      public String toString()
      このマップの文字列表現を返します。 文字列表現は、キーと値のマッピングを(特に順序を決めずに)中括弧("{}")で囲んだリストで構成されます。 隣接するマッピングは、文字", " (カンマと空白文字)によって区切られます。 各キーと値のマッピングは、キーの後に等号("=")が続き、その次にキーと関連付けられる値が続くという形で表現されます。
      オーバーライド:
      クラスAbstractMap<K,V>toString
      戻り値:
      このマップの文字列表現
    • equals

      public boolean equals(Object o)
      指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトがこのマップと同じマッピングを持つマップである場合は、trueを返します。 このオペレーションは、マップのいずれかがこのメソッドの実行中に並行して変更された場合、誤解を招きやすい結果を返すことがあります。
      定義:
      インタフェースMap<K,V>内のequals
      オーバーライド:
      クラスAbstractMap<K,V>equals
      パラメータ:
      o - このマップと等しいかどうかが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのマップと等しい場合はtrue
      関連項目:
    • putIfAbsent

      public V putIfAbsent(K key, V value)
      指定されたキーがまだ値と関連付けられていない場合は、指定された値に関連付けます。 これは、このmapの場合と同じです:
       
       if (!map.containsKey(key))
         return map.put(key, value);
       else
         return map.get(key);
      ただし、アクションが原子的に実行される点が異なります。
      定義:
      インタフェースConcurrentMap<K,V>内のputIfAbsent
      定義:
      インタフェースMap<K,V>内のputIfAbsent
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull
      例外:
      NullPointerException - 指定されたキーまたは値がnullの場合
    • remove

      public boolean remove(Object key, Object value)
      指定された値にキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。 これは、このmapの場合と同じです:
       
       if (map.containsKey(key)
           && Objects.equals(map.get(key), value)) {
         map.remove(key);
         return true;
       } else {
         return false;
       }
      ただし、アクションが原子的に実行される点が異なります。
      定義:
      インタフェースConcurrentMap<K,V>内のremove
      定義:
      インタフェースMap<K,V>内のremove
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられていると予想される値
      戻り値:
      値が削除された場合はtrue
      例外:
      NullPointerException - 指定されたキーがnullである場合
    • replace

      public boolean replace(K key, V oldValue, V newValue)
      指定された値にキーが現在マッピングされている場合にのみ、そのキーのエントリを置換します。 これは、このmapの場合と同じです:
       
       if (map.containsKey(key)
           && Objects.equals(map.get(key), oldValue)) {
         map.put(key, newValue);
         return true;
       } else {
         return false;
       }
      ただし、アクションが原子的に実行される点が異なります。
      定義:
      インタフェースConcurrentMap<K,V>内のreplace
      定義:
      インタフェースMap<K,V>内のreplace
      パラメータ:
      key - 指定された値が関連付けられるキー
      oldValue - 指定されたキーに関連付けられていると予想される値
      newValue - 指定されたキーに関連付けられる値
      戻り値:
      値が置換された場合はtrue
      例外:
      NullPointerException - 引数が1つでもnullの場合
    • replace

      public V replace(K key, V value)
      キーが値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。 これは、このmapの場合と同じです:
       
       if (map.containsKey(key))
         return map.put(key, value);
       else
         return null;
      ただし、アクションが原子的に実行される点が異なります。
      定義:
      インタフェースConcurrentMap<K,V>内のreplace
      定義:
      インタフェースMap<K,V>内のreplace
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull
      例外:
      NullPointerException - 指定されたキーまたは値がnullの場合
    • getOrDefault

      public V getOrDefault(Object key, V defaultValue)
      指定されたキーがマップされる値を返します。このマップにそのキーのマッピングが含まれていない場合は、指定されたデフォルト値を返します。
      定義:
      インタフェースConcurrentMap<K,V>内のgetOrDefault
      定義:
      インタフェースMap<K,V>内のgetOrDefault
      パラメータ:
      key - 関連付けられた値が返されるキー
      defaultValue - このマップに指定されたキーのマッピングが含まれていない場合に返す値
      戻り値:
      存在する場合はキーのマッピング。それ以外の場合はデフォルト値
      例外:
      NullPointerException - 指定されたキーがnullである場合
    • computeIfAbsent

      public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
      指定されたキーがまだ値に関連付けられていない場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。 メソッドの呼出し全体は原子的に実行されます。 指定された関数は、キーが存在しない場合はこのメソッドの呼出しごとに1回だけ呼び出され、それ以外の場合は一度だけ呼び出されません。 計算の実行中に、他のスレッドによるこのマップの更新操作がブロックされることがあります。そのため、計算は短時間で簡単になります。

      マッピング関数では、計算中にこのマップを変更できません。

      定義:
      インタフェースConcurrentMap<K,V>内のcomputeIfAbsent
      定義:
      インタフェースMap<K,V>内のcomputeIfAbsent
      パラメータ:
      key - 指定された値が関連付けられるキー
      mappingFunction - 値を計算するための関数
      戻り値:
      指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
      例外:
      NullPointerException - 指定されたキーまたはmappingFunctionがnullである場合
      IllegalStateException - 計算で、他の方法では完了しない再帰的な更新がこのマップに対して試行されたことが検出された場合
      RuntimeException - (またはError) mappingFunctionでそうなった場合(この場合、マッピングは確立されていない状態のままになる)
    • computeIfPresent

      public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
      指定されたキーの値が存在する場合、キーと現在マップされている値から新しいマッピングの計算を試みます。 メソッドの呼出し全体は原子的に実行されます。 指定された関数は、キーが存在する場合はこのメソッドの呼出しごとに1回だけ呼び出され、存在しない場合は呼び出されません。 計算の実行中に、他のスレッドによるこのマップの更新操作がブロックされることがあります。そのため、計算は短時間で簡単になります。

      再マッピング関数では、計算時にこのマップを変更できません。

      定義:
      インタフェースConcurrentMap<K,V>内のcomputeIfPresent
      定義:
      インタフェースMap<K,V>内のcomputeIfPresent
      パラメータ:
      key - 値を関連付けることができるキー
      remappingFunction - 値を計算するための関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない場合はnull
      例外:
      NullPointerException - 指定されたキーまたはremappingFunctionがnullである場合
      IllegalStateException - 計算で、他の方法では完了しない再帰的な更新がこのマップに対して試行されたことが検出された場合
      RuntimeException - (またはError) remappingFunctionで例外またはエラーが発生した場合(この場合、マッピングは変更されない)
    • compute

      public V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
      指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。 メソッドの呼出し全体は原子的に実行されます。 指定したファンクションがこのメソッドを呼び出すたびに1回のみ起動されます。 計算の実行中に、他のスレッドによるこのマップの更新操作がブロックされることがあります。そのため、計算は短時間で簡単になります。

      再マッピング関数では、計算時にこのマップを変更できません。

      定義:
      インタフェースConcurrentMap<K,V>内のcompute
      定義:
      インタフェースMap<K,V>内のcompute
      パラメータ:
      key - 指定された値が関連付けられるキー
      remappingFunction - 値を計算するための関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない場合はnull
      例外:
      NullPointerException - 指定されたキーまたはremappingFunctionがnullである場合
      IllegalStateException - 計算で、他の方法では完了しない再帰的な更新がこのマップに対して試行されたことが検出された場合
      RuntimeException - (またはError) remappingFunctionで例外またはエラーが発生した場合(この場合、マッピングは変更されない)
    • merge

      public V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
      指定されたキーがまだ(nullでない)値と関連付けられていない場合は、指定された値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で値を置換し、nullの場合は削除します。 メソッドの呼出し全体は原子的に実行されます。 他のスレッドがこのマップに対して試行する更新オペレーションの一部は計算の進行中にブロックされる可能性があるため、計算は短く簡単にしてください。また、計算でこのマップの他のマッピングを更新しようとしないでください。
      定義:
      インタフェースConcurrentMap<K,V>内のmerge
      定義:
      インタフェースMap<K,V>内のmerge
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 値が存在しない場合に使用する値
      remappingFunction - 値が存在する場合に値を再計算するための関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない場合はnull
      例外:
      NullPointerException - 指定されたキーまたはremappingFunctionがnullである場合
      RuntimeException - (またはError) remappingFunctionで例外またはエラーが発生した場合(この場合、マッピングは変更されない)
    • contains

      public boolean contains(Object value)
      この表の指定された値にキーがマップされているかどうかをテストします。

      このメソッドは、機能がcontainsValue(Object)と同じであり、Java Collections Frameworkの導入前にこのメソッドをサポートしていたクラスHashtableとの完全な互換性を保証するためだけに存在することに注意してください。

      パラメータ:
      value - 検索する値
      戻り値:
      equalsメソッドで決められているように、一部のキーがこのテーブル内のvalue引数にマッピングされる場合にのみtrue。それ以外の場合はfalse
      例外:
      NullPointerException - 指定された値がnullである場合
    • keys

      public Enumeration<K> keys()
      表にあるキーの列挙を返します。
      戻り値:
      テーブルにあるキーのリスト
      関連項目:
    • elements

      public Enumeration<V> elements()
      表にある値のリストを返します。
      戻り値:
      テーブルにある値のリスト
      関連項目:
    • mappingCount

      public long mappingCount()
      マッピングの数を返します。 ConcurrentHashMapにはintで表すことができる数より多くのマッピングが含まれている可能性があるため、size()のかわりにこのメソッドを使用するようにしてください。 返される値は推定値であり、挿入や削除が同時に行われた場合、実際のカウントは異なる可能性があります。
      戻り値:
      マッピングの数
      導入されたバージョン:
      1.8
    • newKeySet

      public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet()
      指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。
      型パラメータ:
      K - 返されるセットの要素型
      戻り値:
      新しいセット
      導入されたバージョン:
      1.8
    • newKeySet

      public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet(int initialCapacity)
      指定された型からBoolean.TRUEへの、ConcurrentHashMapに連動する新しいSetを作成します。
      型パラメータ:
      K - 返されるセットの要素型
      パラメータ:
      initialCapacity - 実装は、この多数の要素を格納するように内部のサイズ設定を実行する。
      戻り値:
      新しいセット
      例外:
      IllegalArgumentException - 要素の初期容量が負の場合
      導入されたバージョン:
      1.8
    • keySet

      public ConcurrentHashMap.KeySetView<K,V> keySet(V mappedValue)
      このマップ内のキーのSetビューを返します。追加(つまり、Collection.add(E)およびCollection.addAll(Collection))には、指定された共通のマップされた値を使用します。 これは、当然ながら、このビューからのすべての追加で同じ値を使用することが許容される場合にのみ適しています。
      パラメータ:
      mappedValue - 追加に使用するマップされた値
      戻り値:
      セット・ビュー
      例外:
      NullPointerException - mappedValueがnullである場合
    • forEach

      public void forEach(long parallelismThreshold, BiConsumer<? super K,? super V> action)
      各(key, value)に対して指定されたアクションを実行します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      action - アクション
      導入されたバージョン:
      1.8
    • forEach

      public <U> void forEach(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, Consumer<? super U> action)
      各(キー, 値)のnullでない各変換に対し、指定されたアクションを実行します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、アクションは適用されない)
      action - アクション
      導入されたバージョン:
      1.8
    • search

      public <U> U search(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> searchFunction)
      指定された検索関数を各(キー、値)に適用し、nullでない結果を返します(存在しない場合はnull)。 成功した場合、その後の要素の処理は抑制され、検索関数の他の並列呼出しの結果は無視されます。
      型パラメータ:
      U - 検索関数の戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      searchFunction - 成功した場合はnull以外の結果を返し、それ以外の場合はnullを返す関数。
      戻り値:
      各(キー、値)に対して指定された検索関数を適用した場合のnull以外の結果。存在しない場合はnull
      導入されたバージョン:
      1.8
    • reduce

      public <U> U reduce(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
      指定されたリデューサを使用して値を結合することにより、すべての(キー、値)ペアの指定された変換の累積結果を返します。結果がない場合はnullを返します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、値は結合されない)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての(キー、値)ペアの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceToDouble

      public double reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K,? super V> transformer, double basis, DoubleBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての(キー、値)ペアの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceToLong

      public long reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K,? super V> transformer, long basis, LongBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての(キー、値)ペアの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceToInt

      public int reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K,? super V> transformer, int basis, IntBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての(キー、値)ペアの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての(キー、値)ペアの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • forEachKey

      public void forEachKey(long parallelismThreshold, Consumer<? super K> action)
      各キーに対して指定されたアクションを実行します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      action - アクション
      導入されたバージョン:
      1.8
    • forEachKey

      public <U> void forEachKey(long parallelismThreshold, Function<? super K,? extends U> transformer, Consumer<? super U> action)
      各キーのnull以外の各変換に対して指定されたアクションを実行します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、アクションは適用されない)
      action - アクション
      導入されたバージョン:
      1.8
    • searchKeys

      public <U> U searchKeys(long parallelismThreshold, Function<? super K,? extends U> searchFunction)
      各キーに指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。 成功した場合、その後の要素の処理は抑制され、検索関数の他の並列呼出しの結果は無視されます。
      型パラメータ:
      U - 検索関数の戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      searchFunction - 成功した場合はnull以外の結果を返し、それ以外の場合はnullを返す関数。
      戻り値:
      各キーに対して指定された検索関数を適用した場合のnull以外の結果。存在しない場合はnull
      導入されたバージョン:
      1.8
    • reduceKeys

      public K reduceKeys(long parallelismThreshold, BiFunction<? super K,? super K,? extends K> reducer)
      指定されたリデューサを使用して値を結合することにより、すべてのキーの累積結果を返します。結果がない場合はnullを返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      指定されたリデューサを使用して値を結合することによってすべてのキーを累積した結果。存在しない場合はnull
      導入されたバージョン:
      1.8
    • reduceKeys

      public <U> U reduceKeys(long parallelismThreshold, Function<? super K,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
      指定されたリデューサを使用して値を結合することにより、すべてのキーの指定された変換の累積結果を返します。結果がない場合はnullを返します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、値は結合されない)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのキーの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceKeysToDouble

      public double reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのキーの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceKeysToLong

      public long reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのキーの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceKeysToInt

      public int reduceKeysToInt(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのキーの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのキーの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • forEachValue

      public void forEachValue(long parallelismThreshold, Consumer<? super V> action)
      各値に対して指定されたアクションを実行します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      action - アクション
      導入されたバージョン:
      1.8
    • forEachValue

      public <U> void forEachValue(long parallelismThreshold, Function<? super V,? extends U> transformer, Consumer<? super U> action)
      各値のnull以外の各変換に対して指定されたアクションを実行します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、アクションは適用されない)
      action - アクション
      導入されたバージョン:
      1.8
    • searchValues

      public <U> U searchValues(long parallelismThreshold, Function<? super V,? extends U> searchFunction)
      各値に指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。 成功した場合、その後の要素の処理は抑制され、検索関数の他の並列呼出しの結果は無視されます。
      型パラメータ:
      U - 検索関数の戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      searchFunction - 成功した場合はnull以外の結果を返し、それ以外の場合はnullを返す関数。
      戻り値:
      各値に指定された検索関数を適用したnull以外の結果。存在しない場合はnull
      導入されたバージョン:
      1.8
    • reduceValues

      public V reduceValues(long parallelismThreshold, BiFunction<? super V,? super V,? extends V> reducer)
      指定されたリデューサを使用して値を結合することにより、すべての値の累積結果を返します。結果がない場合はnullを返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての値を累積した結果
      導入されたバージョン:
      1.8
    • reduceValues

      public <U> U reduceValues(long parallelismThreshold, Function<? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
      指定されたリデューサを使用して値を結合することにより、すべての値の指定された変換の累積結果を返します。結果がない場合はnullを返します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、値は結合されない)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての値の指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceValuesToDouble

      public double reduceValuesToDouble(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての値の指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceValuesToLong

      public long reduceValuesToLong(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての値の指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceValuesToInt

      public int reduceValuesToInt(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべての値の指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべての値の指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • forEachEntry

      public void forEachEntry(long parallelismThreshold, Consumer<? super Map.Entry<K,V>> action)
      各エントリに対して指定されたアクションを実行します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      action - アクション
      導入されたバージョン:
      1.8
    • forEachEntry

      public <U> void forEachEntry(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, Consumer<? super U> action)
      各エントリのnull以外の各変換に対して指定されたアクションを実行します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、アクションは適用されない)
      action - アクション
      導入されたバージョン:
      1.8
    • searchEntries

      public <U> U searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> searchFunction)
      各エントリに指定された検索関数を適用したnull以外の結果を返します。結果がない場合はnullを返します。 成功した場合、その後の要素の処理は抑制され、検索関数の他の並列呼出しの結果は無視されます。
      型パラメータ:
      U - 検索関数の戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      searchFunction - 成功した場合はnull以外の結果を返し、それ以外の場合はnullを返す関数。
      戻り値:
      各エントリに指定された検索関数を適用したnull以外の結果。存在しない場合はnull
      導入されたバージョン:
      1.8
    • reduceEntries

      public Map.Entry<K,V> reduceEntries(long parallelismThreshold, BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>> reducer)
      指定されたリデューサを使用して値を結合することにより、すべてのエントリの累積結果を返します。結果がない場合はnullを返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのエントリを累積した結果
      導入されたバージョン:
      1.8
    • reduceEntries

      public <U> U reduceEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
      指定されたリデューサを使用して値を結合することにより、すべてのエントリの指定された変換の累積結果を返します。結果がない場合はnullを返します。
      型パラメータ:
      U - トランスフォーマの戻り値の型
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数。変換がない場合はnull(その場合、値は結合されない)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのエントリの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceEntriesToDouble

      public double reduceEntriesToDouble(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,V>> transformer, double basis, DoubleBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのエントリの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceEntriesToLong

      public long reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのエントリの指定された変換を累積した結果
      導入されたバージョン:
      1.8
    • reduceEntriesToInt

      public int reduceEntriesToInt(long parallelismThreshold, ToIntFunction<Map.Entry<K,V>> transformer, int basis, IntBinaryOperator reducer)
      指定されたリデューサを使用して値を結合し、指定された基準を識別値として使用して、すべてのエントリの指定された変換の累積結果を返します。
      パラメータ:
      parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数
      transformer - 要素の変換を返す関数
      basis - リダクションの識別(初期のデフォルト値)
      reducer - 交換可能性と結合性を持つ結合関数
      戻り値:
      すべてのエントリの指定された変換を累積した結果
      導入されたバージョン:
      1.8