PHP et Perl
Code source PHP utilisant un tableau associatif :
$dico = array( "lundi"=>"dodo", "mardi"=>"dodo", "mercredi"=>"resto" ); echo $dico["lundi"]; foreach($dico as $key=>$value) { echo "Le $key c'est $value."; }
Le même code en Perl :
%dico = qw ( lundi dodo mardi dodo mercredi resto ) ; print "$dico{lundi}\n"; foreach $key (sort keys %dico) { print "Le $key c'est $dico{$key}.\n"; }
Sortie écran dans les deux cas :
dodo Le lundi c'est dodo Le mardi c'est dodo Le mercredi c'est resto
C++
Code source C++ utilisant un tableau associatif via la classe map de la bibliothèque standard :
#include #include using namespace std; int main() { map <string, string> repertoire; repertoire["Jean Dupont"] = "01.02.03.04.05"; repertoire["François Martin"] = "02.03.04.05.06"; repertoire["Louis Durand"] = "03.04.05.06.07"; return 0; }
Le tableau associatif ci-dessus est aussi appelé dictionnaire notamment parce qu'il permet de faire des recherches rapides, sans parcourir le tableau entier.
Objective Caml
Le langage Objective Caml fournit trois sortes de tableaux associatifs dans sa bibliothèque standard. La plus simple est une liste de paires :
let m = ["Sally Smart", "555-9999"; "John Doe", "555-1212"; "J. Random Hacker", "553-1337"];; val m : (string * string) list = [("Sally Smart", "555-9999"); ("John Doe", "555-1212"); ("J. Random Hacker", "553-1337")] # List.assoc "John Doe" m;; - : string = "555-1212"
La seconde est une table de hachage polymorphe :
let m = Hashtbl.create 3;; val m : ('_a, '_b) Hashtbl.t = # Hashtbl.add m "Sally Smart" "555-9999"; Hashtbl.add m "John Doe" "555-1212"; Hashtbl.add m "J. Random Hacker" "553-1337";; - : unit = () # Hashtbl.find m "John Doe";; - : string = "555-1212"
Enfin, la dernière est un dictionnaire purement applicatif (réalisé par des arbres AVL) :
include (Map.Make(String));; ... # let m = add "Sally Smart" "555-9999" empty let m = add "John Doe" "555-1212" m let m = add "J. Random Hacker" "553-1337" m;; val m : string t = # find "John Doe" m;; - : string = "555-1212"
Les listes de paires et les dictionnaires sont des structures de données persistantes, car purement fonctionnelles. Les tables de hachage sont au contraire des structures de données impératives, de meilleure efficacité que les listes et les AVL en général.