概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## shohaku.core.collections
インタフェース Group

既知の実装クラスの一覧:
  AbstractMapGroup, SingletonGroup, WrappedGroup

public interface Group

キーを識別子として複数の値をグループ化するオブジェクトです。
データ構造的には重複可能なマップ（マルチマップ）と同等です。

グループには、同一のキーを複数登録することはできません。
キーは必ず一意であり、キー対応する値を必ず０個以上保持しています。

グループ化された値の集まりに対して値の重複が許されるか、また要素に順序を持つかは各実装によって異なります。

このインターフェースは`Java Collections Framework` の独自拡張の位置付けです。

入れ子クラスの概要
`static interface` | `Group.Entry` グループのエントリ (キーとコレクションのペア) です。

メソッドの概要
`boolean` | `add(java.lang.Object key)` 指定されたキーに対するコレクションを追加します (任意のオペレーション)。
`boolean` | `add(java.lang.Object key, java.lang.Object value)` 指定された値を指定されたキーに対応するコレクションに追加します (任意のオペレーション)。
`void` | `addAll(Group g)` 指定されたグループのすべてのキーと対応する全値ををこのグループに追加します (任意のオペレーション)。
`boolean` | `addAll(java.lang.Object key, java.util.Collection c)` 指定されたコレクションの全要素をキーに対応するコレクションに追加します (任意のオペレーション)。
`void` | `clear()` グループのマッピングをすべて削除します (任意のオペレーション)。
`boolean` | `containsKey(java.lang.Object key)` 指定されたキーのマッピングがグループに含まれている場合に`true`を返却します。
`boolean` | `containsValue(java.lang.Object key, java.lang.Object value)` グループが、キーのマッピングしているコレクションに指定された値を 1 つ以上含む場合に`true`を返却します。
`java.util.Set` | `entrySet()` グループに含まれているグループエントリのセットビューを返却します。
`boolean` | `equals(java.lang.Object o)` 指定されたオブジェクトがこのグループと等しいかどうかを比較します。
`java.util.Collection` | `get(java.lang.Object key)` 指定されたキーにマッピングされたコレクションを返却します。
`int` | `hashCode()` グループのハッシュコード値を返却します。
`boolean` | `isEmpty()` グループがキーとコレクションのマッピングを保持しない場合に`true`を返却します。
`java.util.Iterator` | `iterator()` グループに含まれるグループエントリの反復子を返却します。
`java.util.Iterator` | `iterator(java.lang.Object key)` 指定されたキーにマッピングされたコレクションの要素の反復子を返却します。
`java.util.Set` | `keySet()` グループに含まれているキーのセットビューを返却します。
`java.util.Collection` | `remove(java.lang.Object key)` このキーにマッピングがある場合に、そのマッピングをグループから削除します (任意のオペレーション)。
`boolean` | `remove(java.lang.Object key, java.lang.Object value)` このキーにマッピングがある場合に、そのマッピングの要素から指定の値を削除します (任意のオペレーション)。
`int` | `size()` グループ内のキーと値の集合の数を返却します。
`int` | `size(java.lang.Object key)` グループ内のキーとマッピングする値のの要素数を返却します。

メソッドの詳細

### clear

    public void clear()

  グループのマッピングをすべて削除します (任意のオペレーション)。

### isEmpty

    public boolean isEmpty()

  グループがキーとコレクションのマッピングを保持しない場合に`true`を返却します。

  戻り値:
    グループがキーとコレクションのマッピングを保持しない場合は true

### add

    public boolean add(java.lang.Object key)

  指定されたキーに対するコレクションを追加します (任意のオペレーション)。
  グループに既にこのキーに対するマッピングがある場合何も行われません。
  グループに既にこのキーに対するマッピングがある場合`true`を返却します。

  パラメータ:
    `key` - 指定されるコレクションが関連付けられるキー
  戻り値:
    既にこのキーに対するマッピングがある場合 true

### add

    public boolean add(java.lang.Object key,
                       java.lang.Object value)

  指定された値を指定されたキーに対応するコレクションに追加します (任意のオペレーション)。
  グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
  グループに既にこのキーに対するマッピングがある場合`true`を返却します。

  パラメータ:
    `key` - 指定される値が関連付けられるキー
    `value` - 指定されるキーに関連付けられる値
  戻り値:
    既にこのキーに対するマッピングがある場合 true

### addAll

    public boolean addAll(java.lang.Object key,
                          java.util.Collection c)

  指定されたコレクションの全要素をキーに対応するコレクションに追加します (任意のオペレーション)。
  グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
  グループに既にこのキーに対するマッピングがある場合`true`を返却します。

  パラメータ:
    `key` - 指定されるコレクションの全要素が関連付けられるキー
    `c` - 指定されるキーに関連付けられるコレクション
  戻り値:
    既にこのキーに対するマッピングがある場合 true

### addAll

    public void addAll(Group g)

  指定されたグループのすべてのキーと対応する全値ををこのグループに追加します (任意のオペレーション)。

  指定されたグループのキー k から値 v までの各マッピングに関して、この呼び出しの効果は、putAll(k, v) を呼び出した場合と同じです。 指定されたグループがこのオペレーションの処理中に変更された場合、そのオペレーションの動作は指定外となります。

  パラメータ:
    `g` - グループに追加されるグループ

### iterator

    public java.util.Iterator iterator()

  グループに含まれるグループエントリの反復子を返却します。
  反復子の要素は Group.Entry 型に為ります。 エントリが存在しない場合空の反復子が返ります。

  戻り値:
    グループエントリの反復子

### iterator

    public java.util.Iterator iterator(java.lang.Object key)

  指定されたキーにマッピングされたコレクションの要素の反復子を返却します。
  指定されたキーにマッピングされたコレクションが存在しない場合空の反復子が返ります。

  パラメータ:
    `key` - 関連づけられている識別キー
  戻り値:
    キーにマッピングされたコレクションの反復子

### get

    public java.util.Collection get(java.lang.Object key)

  指定されたキーにマッピングされたコレクションを返却します。
  グループがこのキーのマッピングを保持していない場合は`null`を返却します。

  戻り値に`Collection`の継承インターフェースの型が戻す実装も有り得ます。
  つまり左記の処理が有効である実装が有り得ます`List l = (List) group.get(key);`。

  パラメータ:
    `key` - 関連づけられている識別キー
  戻り値:
    指定のキーをマッピングするコレクション

### remove

    public java.util.Collection remove(java.lang.Object key)

  このキーにマッピングがある場合に、そのマッピングをグループから削除します (任意のオペレーション)。

  つまり`(key==null ? k==null : key.equals(k))`という条件で、キー k からコレクション c までマッピングがグループに含まれる場合、このマッピングは削除されます。グループはこのようなマッピングを 1 つだけ含みます。

  キーに以前マッピングされていたコレクションを返却します。
  このキーのマッピングがグループにない場合は、null を返却します 1 度呼び出しが返れば、グループは指定されたキーのマッピングを含みません。

  戻り値に`Collection`の継承インターフェースの型が戻す実装も有り得ます。
  つまり左記の処理が有効である実装が有り得ます`List l = (List) group.remove(key);`。

  パラメータ:
    `key` - 関連づけられている識別キー
  戻り値:
    指定されたキーとマッピングされていた以前のコレクション。キーのマッピングがなかった場合は null

### remove

    public boolean remove(java.lang.Object key,
                          java.lang.Object value)

  このキーにマッピングがある場合に、そのマッピングの要素から指定の値を削除します (任意のオペレーション)。

  つまり、(k.equals(key)) という条件で、キー key のマッピングがグループに含まれる場合、コレクション c に対して要素 value が (c.remove(value)) の条件で、これを削除します。

  指定された要素がマッピングされたコレクション内に格納されていた場合には true を返却します。
  すなわち、この呼び出しの結果、グループが変更された場合に`true`を返却します。

  パラメータ:
    `key` - 関連づけられている識別キー
    `value` -
  戻り値:
    指定されたキーと関連付けられていた以前のコレクション。キーのマッピングがなかった場合は null

### containsKey

    public boolean containsKey(java.lang.Object key)

  指定されたキーのマッピングがグループに含まれている場合に`true`を返却します。

  つまり、(k.equals(key)) という条件で、キー key のマッピングがグループに含まれる場合に`true`を返却します。
  グループはこのようなマッピングを 1 つだけ含むことができます。

  パラメータ:
    `key` - マッピングされているか判定されるキー
  戻り値:
    グループが指定のキーのマッピングを保持する場合は true

### containsValue

    public boolean containsValue(java.lang.Object key,
                                 java.lang.Object value)

  グループが、キーのマッピングしているコレクションに指定された値を 1 つ以上含む場合に`true`を返却します。

  つまり、(k.equals(key)) という条件で、キー key のマッピングがグループに含まれる場合、コレクション c に対して要素 value が (c.contains(value)) の条件で true の場合に true を返却します。

  パラメータ:
    `key` - マッピングされているか判定されるキー
    `value` - キーをマッピングしているコレクションの内に存在するか判定される値
  戻り値:
    グループが指定のキーにマッピングされるコレクションの内に値が存在する場合は true

### keySet

    public java.util.Set keySet()

  グループに含まれているキーのセットビューを返却します。

  セットはグループと連動しているので、グループに対する変更はセットに反映され、また、セットに対する変更はグループに反映されます。
  セットに対する反復の処理中にグループが変更された場合は、反復の結果は保証されません。
  セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って グループから対応するマッピングを削除する要素削除処理をサポートします。
  add オペレーションと addAll オペレーションは、セットではサポートされていません。

  戻り値:
    グループに含まれているキーのセットビュー

### entrySet

    public java.util.Set entrySet()

  グループに含まれているグループエントリのセットビューを返却します。

  セットはグループと連動しているので、グループに対する変更はセットに反映され、また、セットに対する変更はグループに反映されます。
  セットに対する反復の処理中にグループが変更された場合は、反復の結果は保証されません。
  セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って グループから対応するマッピングを削除する要素削除処理をサポートします。
  add オペレーションと addAll オペレーションは、セットではサポートされていません。

  戻り値:
    グループに含まれているグループエントリのセットビュー

### size

    public int size()

  グループ内のキーと値の集合の数を返却します。
  グループに Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返却します。

  戻り値:
    マッピングの数

### size

    public int size(java.lang.Object key)

  グループ内のキーとマッピングする値のの要素数を返却します。
  この値に Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返却します。

  パラメータ:
    `key` - キー
  戻り値:
    キーとマッピングする値のの要素数

### hashCode

    public int hashCode()

  グループのハッシュコード値を返却します。

  グループのハッシュコードは、グループが保有する全てのグループエントリの hashCode の合計になるように定義されます。
  これにより、Object.hashCode の一般規約によって要求されるように、任意の 2 つのグループ t1 と t2 で t1.equals(t2) であれば、t1.hashCode()==t2.hashCode() となることが保証されます。

  戻り値:
    グループのハッシュコード値

### equals

    public boolean equals(java.lang.Object o)

  指定されたオブジェクトがこのグループと等しいかどうかを比較します。

  指定されたオブジェクトもグループであり、2 つの Group が同じグループエントリを表している場合は true を返却します。
  つまり、t1.entrySet().equals(t2.entrySet()) である場合、2 つのグループ t1 と t2 は同じグループエントリを表します。
  これにより、Group インタフェースの実装が異なる場合でも、equals メソッドが正しく動作することが保証されます。

  パラメータ:
    `o` - グループと等しいかどうかを比較するオブジェクト
  戻り値:
    指定されたオブジェクトがグループと等しい場合は true

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド