[ Collection ] | +-[List] # General reference usage | # DUPLICATION is allowed. | # INDEX based. | # Keep the order | |---+-[ArrayList] # implementation usage | #[Simplest form of collection, probably. if you don't know what type to use, use this one. can have duplicate value. perfect for ADD and GET process. ] | |---+-[LinkedList] # implementation usage | #[like ArrayList but, perfect for frequent ADD and REMOVE process.] | +-[Set] |---+-[TreeSet] # implementation usage |---+-[HashSet] # implementation usage |---+-[EnumSet] # implementation usage |---+-[SortedSet] # reference usage | #[Interface that provides some functionalities for further classes which are extending from this interface.] |---+-[NavigableSet] # reference usage | #[whatever you need from SortedSet is implemented here.] | | | +-[Queue] # reference usage |---+-[Dequeue] # double ended queue for keeping the LIFO(stack) or FIFO (queue concept) |---+-[ArrayDequeue] # implementation usage (#use ADD method instead og push for STACK) |---+-[LinkedList] # implementation usage --> can be used as Queue but rarely [Map] | # Key/Value based HASHCODE() & EQUALS() | #ORDER is preserved as inserted. |---+-[HashMap] # implementation usage |---+-[TreeMap] # implementation usage |---+-[SortedMap] # reference usage when implementation is TREEMAP with the Comparator |---+-[NavigableMap] # reference usage when implementation is TREEMAP with the Comparator