Collections

Abstract supertype of objects which associate values with keys. A `Correspondence<Key,Item>` may be a viewed as a partial function from domain `Key` to range `Item`, where some `Key`s have no `Item`.

`Correspondence` does not satisfy `Category`, since in some cases—`List`, for example—it is convenient to consider the subtype a `Category` of its indexed items, and in other cases—`Map`, for example—it is convenient to treat the subtype as a `Category` of its entries.

The item corresponding to a given key may be obtained from a `Correspondence` using the item operator:

    value bg = settings["backgroundColor"] else white;

The `get()` operation and item operator result in an optional type, to reflect the possibility that there may be no item for the given key.

By: Gavin
See also `Map`, `List`, `Category`

no type hierarchy

no supertypes hierarchy

- `Correspondence`
  - `List`
    - `SearchableList`
      - `Array`
      - `String`
    - `Sequential`
      - `Empty`
        - `empty`
      - `Sequence`
        - `ArraySequence`
        - `Range`
        - `Singleton`
        - `Tuple`
    - `StringBuilder`
  - `Map`
    - `emptyMap`

Attributes
`keys` | Source Code `shared default Category<Key> keys` The `Category` of all keys for which a value is defined by this `Correspondence`. See also `defines()`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

Methods
`defines` | Source Code `shared formal Boolean defines(Key key)` Determines if there is a value defined for the given key. See also `definesAny()`, `definesEvery()`, `keys`
`definesAny` | Source Code `shared default Boolean definesAny({Key*} keys)` Determines if this `Correspondence` defines a value for any one of the given keys. See also `defines()`
`definesEvery` | Source Code `shared default Boolean definesEvery({Key*} keys)` Determines if this `Correspondence` defines a value for every one of the given keys. See also `defines()`
`get` | Source Code `shared formal Item? get(Key key)` Returns the value defined for the given key, or `null` if there is no value defined for the given key. See also `getAll()`
`getAll` | Source Code `shared default Iterable<Item?,Absent> getAll<Absent>(Iterable<Key,Absent> keys) given Absent satisfies Null` Returns the items defined for the given keys, in the same order as the corresponding keys. For any key which does not have an item defined, the resulting stream contains the value `null`. See also `get()`

Inherited Methods
Methods inherited from: `Object` `equals()`