Conteneur (informatique)
# Conteneur (informatique)

En informatique, un conteneur est une structure de données, une classe, ou un type de données abstrait, dont les instances représentent des collections d'autres objets. Autrement dit, les conteneurs sont utilisés pour stocker des objets sous une forme organisée qui suit des règles d'accès spécifiques. On peut implémenter un conteneur de différentes façons, qui conduisent à des complexités en temps et en espace différentes. On choisira donc l'implémentation selon les besoins.

Un conteneur est une enveloppe virtuelle qui permet de distribuer une application avec tous les éléments dont elle a besoin pour fonctionner : fichiers source, environnement d'exécution, librairies, outils et fichiers. Ils sont assemblés en un ensemble cohérent et prêt à être déployé sur un serveur et son système d'exploitation (OS). Contrairement à la virtualisation de serveurs et à une machine virtuelle, le conteneur n’intègre pas de noyau, il s’appuie directement sur le noyau de l'ordinateur sur lequel il est déployé.

## Vue générale

Un conteneur peut être étudié selon trois points de vue :

* l'accès, c'est-à-dire la manière d'accéder aux éléments du conteneur. Dans le cas des tableaux, l'accès se fait selon des indices. Dans le cas des piles (stack), l'accès se fait selon l'ordre LIFO (dernier entré, premier sorti), et dans le cas des files (queue) selon l'ordre FIFO (premier entré, premier sorti) ;
* le stockage, c'est-à-dire la manière de stocker les éléments du conteneur ;
* le parcours, c'est-à-dire la manière de parcourir les éléments du conteneur.

Les conteneurs implémentent en général des méthodes pour :

* créer un conteneur vide ;
* ajouter des objets au conteneur ;
* supprimer un ou plusieurs objets du conteneur ;
* supprimer tous les objets du conteneur ;
* accéder aux objets du conteneur ;
* accéder au nombre d'objets du conteneur.

Les conteneurs sont parfois implémentés conjointement avec des itérateurs.

