In computer science, a container is a class or a data structure[1][2] whose instances are collections of other objects.
In other words, they store objects in an organized way that follows specific access rules.
Container abstractions can be written in virtually any programming language, regardless of its type system.
[3]: 273 However, in strongly-typed object-oriented programming languages it may be somewhat complicated for a developer to write reusable homogeneous containers.
[3]: 274–276 Many elemental types (e.g. integers or floating numbers) are inherently incompatible with each other because of the memory size they occupy and their semantic meaning and therefore require different containers (unless of course, they are mutually compatible or convertible).