the collection of programming constructs used to implement a collection. for example, a collection might be implemented using a fixed-size structure such as an array
a mechanism for grouping and organizing data to make it easier to use
an abstract template that organizes data in such a way that helps simplify sorting, searching, computing, and other operations.