# La clase Map

(PECL ds >= 1.0.0)

## Introducción

Un Map es una colección secuencial de pares clave-valor, casi identico a un array usado en un contexto similar. Las claves pueden ser de cualquier tipo, pero deben ser únicos. Los valores se reemplazan si se agregan al mapa usando la misma clave.

## Fortalezas

- Las claves y valores pueden ser de cualquer tipo, incluyendo objetos.
- Soporta la sintaxis array (corchetes).
- Se mantiene el orden de inserción.
- El rendimiento y la eficiencia de memoria son muy similares al de un array.
- Automáticamente libera la memoria asignada cuando su tamaño cae lo suficientemente bajo.

## Debilidades

- No puede ser convertido a un array cuando los objetos son usados como claves.

## Sinopsis de la Clase

class Ds\Map implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Métodos */
public function allocate(int `$capacity`): void
public function apply(callable `$callback`): void
public function capacity(): int
public function clear(): void
public function copy(): Ds\Map
public function diff(Ds\Map `$map`): Ds\Map
public function filter(callable `$callback` = ?): Ds\Map
public function first(): Ds\Pair
public function get(mixed `$key`, mixed `$default` = ?): mixed
public function hasKey(mixed `$key`): bool
public function hasValue(mixed `$value`): bool
public function intersect(Ds\Map `$map`): Ds\Map
public function isEmpty(): bool
public function keys(): Ds\Set
public function ksort(callable `$comparator` = ?): void
public function ksorted(callable `$comparator` = ?): Ds\Map
public function last(): Ds\Pair
public function map(callable `$callback`): Ds\Map
public function merge(mixed `$values`): Ds\Map
public function pairs(): Ds\Sequence
public function put(mixed `$key`, mixed `$value`): void
public function putAll(mixed `$pairs`): void
public function reduce(callable `$callback`, mixed `$initial` = ?): mixed
public function remove(mixed `$key`, mixed `$default` = ?): mixed
public function reverse(): void
public function reversed(): Ds\Map
public function skip(int `$position`): Ds\Pair
public function slice(int `$index`, int `$length` = ?): Ds\Map
public function sort(callable `$comparator` = ?): void
public function sorted(callable `$comparator` = ?): Ds\Map
public function sum(): int|float
public function toArray(): array
public function union(Ds\Map `$map`): Ds\Map
public function values(): Ds\Sequence
public function xor(Ds\Map `$map`): Ds\Map
}

## Constantes predefinidas

`Ds\Map::MIN_CAPACITY`

## Historial de cambios

Versión | Descripción
--- | ---
PECL ds 1.3.0 | La clase ahora implementa ArrayAccess.
PECL ds 1.2.0 | `Ds\Map::MIN_CAPACITY` cambió de 16 a 8.

## Tabla de contenidos

- Ds\Map::allocate — Asigna suficiente memoria para una capacidad requerida
- Ds\Map::apply — Actualiza todos los valores aplicando una retrollamada a cada valor
- Ds\Map::capacity — Devuelve la capacidad actual
- Ds\Map::clear — Elimina todos los valores
- Ds\Map::__construct — Crear una nueva instancia
- Ds\Map::copy — Devuelve una copia superficial del mapa
- Ds\Map::count — Devuelve el número de valores en el mapa
- Ds\Map::diff — Crear un nuevo map utilizando claves que no están en otro map
- Ds\Map::filter — Crear un nuevo mapa utilizando un callable para determinar qué pares incluir
- Ds\Map::first — Devuelve la primera pareja del mapa
- Ds\Map::get — Devuelve el valor para una clave dada
- Ds\Map::hasKey — Determina si el mapa contiene una clave dada
- Ds\Map::hasValue — Determina si el mapa contiene un valor dado
- Ds\Map::intersect — Crear un nuevo mapa intersectando las claves con otro mapa
- Ds\Map::isEmpty — Indica si el mapa está vacío
- Ds\Map::jsonSerialize — Devuelve una representación que puede ser convertida en JSON
- Ds\Map::keys — Devuelve un conjunto de las claves del mapa
- Ds\Map::ksort — Ordena el mapa en el lugar por clave
- Ds\Map::ksorted — Devuelve una copia, ordenada por clave
- Ds\Map::last — Devuelve el último par del mapa
- Ds\Map::map — Devuelve el resultado de la aplicación de una retrollamada a cada valor
- Ds\Map::merge — Devuelve el resultado de la adición de todas las asociaciones dadas
- Ds\Map::pairs — Devuelve una secuencia que contiene todas las parejas del mapa
- Ds\Map::put — Asocia una clave a un valor
- Ds\Map::putAll — Asocia todas las parejas clave-valor de un objeto traversable o de un array
- Ds\Map::reduce — Reduce el mapa a un solo valor utilizando una retrollamada
- Ds\Map::remove — Elimina y devuelve un valor por clave
- Ds\Map::reverse — Invierte el mapa en su lugar
- Ds\Map::reversed — Devuelve una copia invertida
- Ds\Map::skip — Devuelve el par a un índice de posición dado
- Ds\Map::slice — Devuelve un subconjunto del mapa definido por un índice de inicio y una longitud
- Ds\Map::sort — Ordena el mapa en el lugar por valor
- Ds\Map::sorted — Devuelve una copia, ordenada por valor
- Ds\Map::sum — Devuelve la suma de todos los valores del mapa
- Ds\Map::toArray — Convierte el mapa en un array
- Ds\Map::union — Crear un nuevo mapa utilizando los valores de la instancia actual y de otro mapa
- Ds\Map::values — Devuelve una secuencia de los valores del mapa
- Ds\Map::xor — Crear un nuevo mapa utilizando las claves de la instancia actual o de otro mapa, pero no de ambos

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open