Při deklaraci atributů, parametrů a proměnných je vhodné prvek deklarovat pomocí nejobecnějšího typu, který poskytuje potřebnou funkcionalitu (rozhraní, které dané metody deklaruje) a definovat pomocí potřebné implementace viz následující příklad:

Set<Vertex2D> vertices = new HashSet<>().

V příkladu je navíc použit operator diamant (<>), kdy je zbytečné používat typ prvku kolekce - odvodí se z typu u deklarace.

Většinou je vhodné u prvků kolekcí překrýt metody equals a ... (viz přednáška o equals). Některé kolekce využívají druhou z dvojice metod pro efektivní ukládání prvků do kolekce,

Implementace equals:

Na co brát ohled při volbě kolekce pro implementaci:

Ve třídě CollectionPolygon v metodě withoutLeftmostVertices můžete s výhodou využít množinové operace:

V případě nejasností nebo problémů s implementací se neváhejte zeptat v diskuzním fóru Vaší semenární skupiny, připadně předmětu.