1. Sets
    1. basics
      1. set
      2. \ search quickly
      3. eliminate duplicate
    2. Set Concepts
      1. does not accept duplicate
      2. search incredibly quickly
      3. using hash table-- a special internal array
      4. places elements into specific positions called hash code
      5. elements are in an unpredictable order
      6. Set<String> words = new HashSet<String>();
      7. LinkedHashSet
    3. TreeSet versus HashSet
      1. has internal linked data structure: binary search tree
      2. efficient for adding, removing and searching
      3. ordered
      4. a bit slower than a HashSet
    4. Set Operations
      1. Subtopic 1
  2. List
    1. Collections
      1. data structures
        1. entities store and manage data
      2. collection
        1. an object that stores a group of other objs, called its elements
      3. examples
        1. list
          1. ordered, accessed by int indexes
        2. stack
          1. LIFO
        3. queue
          1. FIFO
        4. set
          1. no duplicates
        5. map
          1. key/value pairs
      4. Java Collections Framework
        1. import java.util.*;
    2. LinkedList versus ArrayList
      1. Linked List
        1. easy to add elements in front or in the middle
        2. LinkedList<Type> <name> = new LinkedList<String>();
      2. Iterators
        1. iterator
          1. efficient retrieval of the elements in a list
          2. retains the current position
        2. ListIterator
          1. works on list
        3. easy to remove
    3. Abstract Data Types(ADTs)
      1. ADT
      2. interface
        1. List
          1. java.util
      3. declare variables and parameters using inter