Containers in dynamic languages are relatively easy, since values just hold their own type (or can be cast into the appropriate type, as in Java).
Containers hold values of type Object.
Containers in Strongly Typed Languages are much more difficult.