En programación informática , una colección es un tipo de datos abstracto que es una agrupación de elementos que pueden usarse de manera polimórfica .
A menudo, los elementos son del mismo tipo de datos, como int o string . A veces, los elementos derivan de un tipo común; incluso derivan del tipo más general de un lenguaje de programación , como object o variant .
Aunque se confunde fácilmente con las implementaciones en lenguajes de programación, la colección, como concepto abstracto, se refiere a conceptos matemáticos que pueden malinterpretarse cuando el enfoque está puesto en una implementación. Por ejemplo, una cola de prioridad se implementa a menudo como un montón, mientras que una matriz asociativa se implementa a menudo como una tabla hash, por lo que esta implementación preferida suele denominar a estos tipos abstractos como un "montón" o un "hash", aunque esto es conceptualmente incorrecto.
Otros tipos de datos abstractos son más específicos que la colección.
Algunas colecciones mantienen un orden lineal de elementos, con acceso a uno o ambos extremos. La estructura de datos que implementa una colección de este tipo no necesita ser lineal. Por ejemplo, una cola de prioridad suele implementarse como un montón , que es una especie de árbol.
Las colecciones lineales notables incluyen:
Algunas colecciones se interpretan como una especie de función: dada una entrada, la colección produce una salida.
Entre las colecciones asociativas más notables se incluyen:
Un conjunto puede interpretarse como un multiconjunto especializado, que a su vez es una matriz asociativa especializada, en cada caso limitando los valores posibles, considerando un conjunto como representado por su función indicadora .
Como tipo de datos abstracto, la colección no prescribe una implementación, aunque la teoría de tipos describe consideraciones de implementación .
Algunos tipos de colección se proporcionan como tipos de datos primitivos en un lenguaje, como listas, mientras que los tipos de colección más complejos se implementan como tipos de datos compuestos en bibliotecas, a veces en la biblioteca estándar de un lenguaje . Algunos ejemplos incluyen:
Las colecciones se implementan como TIPOS. Como con cualquier tipo definido por el programador, primero debe definir el tipo; luego, puede declarar instancias de ese tipo.