Un problème essentiel qui se pose en programmation est l'organisation et le stockage d'un ensemble d'objets dans un autre objet, ce dernier étant appelé un conteneur (en Anglais : container). Pour des raisons de performance et de consommation de mémoire, il est important de choisir le bon type de conteneur en fonction des opérations que l'on souhaite réaliser.