# La classe Map

(PECL ds >= 1.0.0)

## Introduction

Une Map est une collection séquentielle de paires clé-valeur, presque identique à un tableau utilisé dans un contexte similaire. Les clés peuvent être de n'importe quel type, mais doivent être uniques. Les valeurs sont remplacées si elles sont ajoutées à la map en utilisant la même clé.

## Force

- Les clés et les valeurs peuvent être de n'importe quel type, y compris des objets.
- Support de la syntaxe de tableau (crochets).
- L'ordre d'insertion est préservé.
- La performance et l'efficacité mémoire sont très similaires à un tableau.
- Libère automatiquement la mémoire allouée lorsque sa taille devient suffisamment faible.

## Faiblesses

- Ne peut pas être converti en un tableau lorsque des objets sont utilisés comme clés.

## Synopsis de la classe

class Ds\Map implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Méthodes */
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 pré-définies

`Ds\Map::MIN_CAPACITY`

## Historique

Version | Description
--- | ---
PECL ds 1.3.0 | La classe implémente maintenant ArrayAccess.
PECL ds 1.2.0 | `Ds\Map::MIN_CAPACITY` est passé de 16 à 8.

## Sommaire

- Ds\Map::allocate — Alloue suffisamment de mémoire pour une capacité requise
- Ds\Map::apply — Met à jour toutes les valeurs en appliquant une fonction de rappel à chaque valeur
- Ds\Map::capacity — Renvoie la capacité actuelle
- Ds\Map::clear — Enlève toutes les valeurs
- Ds\Map::__construct — Crée une nouvelle instance
- Ds\Map::copy — Renvoie une copie superficielle de la carte
- Ds\Map::count — Renvoie le nombre de valeurs dans la carte
- Ds\Map::diff — Crée une nouvelle map en utilisant des clés qui ne sont pas dans une autre map
- Ds\Map::filter — Crée une nouvelle carte en utilisant un callable pour déterminer quelles paires inclure
- Ds\Map::first — Renvoie la première paire de la carte
- Ds\Map::get — Renvoie la valeur pour une clé donnée
- Ds\Map::hasKey — Détermine si la carte contient une clé donnée
- Ds\Map::hasValue — Détermine si la carte contient une valeur donnée
- Ds\Map::intersect — Crée une nouvelle carte en intersectant les clés avec une autre carte
- Ds\Map::isEmpty — Renvoie si la carte est vide
- Ds\Map::jsonSerialize — Renvoie une représentation qui peut être convertie en JSON
- Ds\Map::keys — Renvoie un ensemble des clés de la carte
- Ds\Map::ksort — Trie la carte en place par clé
- Ds\Map::ksorted — Renvoie une copie, triée par clé
- Ds\Map::last — Renvoie la dernière paire de la carte
- Ds\Map::map — Renvoie le résultat de l'application d'une fonction de rappel à chaque valeur
- Ds\Map::merge — Renvoie le résultat de l'ajout de toutes les associations données
- Ds\Map::pairs — Renvoie une séquence contenant toutes les paires de la carte
- Ds\Map::put — Associe une clé à une valeur
- Ds\Map::putAll — Associe toutes les paires clé-valeur d'un objet traversable ou d'un tableau
- Ds\Map::reduce — Réduit la carte à une seule valeur en utilisant une fonction de rappel
- Ds\Map::remove — Enlève et renvoie une valeur par clé
- Ds\Map::reverse — Renverse la carte en place
- Ds\Map::reversed — Renvoie une copie inversée
- Ds\Map::skip — Renvoie la paire à un index de position donné
- Ds\Map::slice — Renvoie un sous-ensemble de la carte défini par un index de départ et une longueur
- Ds\Map::sort — Trie la carte en place par valeur
- Ds\Map::sorted — Renvoie une copie, triée par valeur
- Ds\Map::sum — Renvoie la somme de toutes les valeurs de la carte
- Ds\Map::toArray — Convertit la carte en un tableau
- Ds\Map::union — Crée une nouvelle carte en utilisant les valeurs de l'instance actuelle et d'une autre carte
- Ds\Map::values — Renvoie une séquence des valeurs de la carte
- Ds\Map::xor — Crée une nouvelle carte en utilisant les clés de l'instance actuelle ou d'une autre carte, mais pas des deux

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