Implementations are the actual data objects used to store collections, which implement the core collection interfaces described in the previous lesson. The sections that follow describe three kinds of implementations:Additionally, you can build your own implementations, based on the JDK's abstract implementations. This is described in a separate lesson because it's an advanced topic. It's not particularly hard, but relatively few people will need to do it.
General-purpose ImplementationsGeneral-purpose implementations are the public classes that provide the primary implementations of the core collection interfaces.
Wrapper ImplementationsWrapper implementations are used in combination with other implementations (often the general-purpose implementations) to provide added functionality.
Convenience ImplementationsConvenience implementations are mini-implementations, typically made available via static factory methods that provide convenient, efficient alternatives to the general-purpose implementations for special collections (like singleton sets).