# A classe Map

(PECL ds >= 1.0.0)

## Introdução

Um Map é uma coleção sequencial de pares chave-valor, quase idêntica a um array usada em um contexto semelhante. As chaves podem ser de qualquer tipo, mas devem ser únicas. Os valores são substituídos se adicionados ao mapa usando a mesma chave.

## Pontos Fortes

- Chaves e valores podem ser de qualquer tipo, incluindo objetos.
- Suporta a sintaxe de array (colchetes).
- A ordem de inserção é preservada.
- O desempenho e a eficiência de memória são muito semelhantes a um array.
- Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.

## Pontos Fracos

- Não pode ser convertido para um array quando objetos são usados como chaves.

## Resumo da classe

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`

## Registro de Alterações

Versão | Descrição
--- | ---
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.
PECL ds 1.2.0 | `Ds\Map::MIN_CAPACITY` foi alterada de 16 para 8.

## Índice

- Ds\Map::allocate — Aloca memória suficiente para uma capacidade requerida
- Ds\Map::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
- Ds\Map::capacity — Retorna a capacidade atual
- Ds\Map::clear — Remove todos os valores
- Ds\Map::__construct — Cria uma nova instância
- Ds\Map::copy — Retorna uma cópia rasa do mapa
- Ds\Map::count — Retorna o número de valores no mapa
- Ds\Map::diff — Cria um novo mapa usando chaves que não estão em outro mapa
- Ds\Map::filter — Cria um novo mapa usando um callable para determinar quais pares incluir
- Ds\Map::first — Retorna o primeiro par no mapa
- Ds\Map::get — Retorna o valor para uma chave dada
- Ds\Map::hasKey — Determina se o mapa contém uma chave dada
- Ds\Map::hasValue — Determina se o mapa contém um valor dado
- Ds\Map::intersect — Cria um novo mapa intersectando chaves com outro mapa
- Ds\Map::isEmpty — Retorna se o mapa está vazio
- Ds\Map::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
- Ds\Map::keys — Retorna um conjunto das chaves do mapa
- Ds\Map::ksort — Ordena o mapa no local pelo chave
- Ds\Map::ksorted — Retorna uma cópia ordenada por chave
- Ds\Map::last — Retorna o último par do mapa
- Ds\Map::map — Retorna o resultado da aplicação de um callback a cada valor
- Ds\Map::merge — Retorna o resultado da adição de todas as associações fornecidas
- Ds\Map::pairs — Retorna uma sequência contendo todos os pares do mapa
- Ds\Map::put — Associa uma chave a um valor
- Ds\Map::putAll — Associa todos os pares chave-valor de um objeto traversable ou array
- Ds\Map::reduce — Reduz o mapa a um único valor usando uma função callback
- Ds\Map::remove — Remove e retorna um valor pela chave
- Ds\Map::reverse — Inverte o mapa no local
- Ds\Map::reversed — Retorna uma cópia invertida
- Ds\Map::skip — Retorna o par em uma posição específica
- Ds\Map::slice — Retorna um subconjunto do mapa definido por um índice inicial e comprimento
- Ds\Map::sort — Ordena o mapa no local pelo valor
- Ds\Map::sorted — Retorna uma cópia, ordenada por valor
- Ds\Map::sum — Retorna a soma de todos os valores no mapa
- Ds\Map::toArray — Converte o mapa em um array
- Ds\Map::union — Cria um novo mapa usando valores da instância atual e de outro mapa
- Ds\Map::values — Retorna uma sequência dos valores do mapa
- Ds\Map::xor — Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos

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