¿Qué colección Java debo usar?

En esta pregunta¿Cómo puedo seleccionar eficientemente un contenedor de biblioteca estándar en C ++ 11? es un diagrama de flujo útil para usar al elegir colecciones de C ++.

Pensé que este era un recurso útil para las personas que no están seguras de qué colección deberían usar, así que intenté encontrar un diagrama de flujo similar para Java y no pude hacerlo.

¿Qué recursos y "hojas de trucos" están disponibles para ayudar a las personas a elegir la Colección correcta para usar al programar en Java? ¿Cómo saben las personas qué implementaciones de listas, conjuntos y mapas deben usar?