title: Difference between HashMap, LinkedHashMap and TreeMap
body: <p>What is the difference between <code>HashMap</code>, <code>LinkedHashMap</code> and <code>TreeMap</code> in Java? 
  I don't see any difference in the output as all the three has <code>keySet</code> and <code>values</code>. What are <code>Hashtable</code>s?</p>
  
  <pre><code>Map m1 = new HashMap();
  m1.put("map", "HashMap");
  m1.put("schildt", "java2");
  m1.put("mathew", "Hyden");
  m1.put("schildt", "java2s");
  print(m1.keySet()); 
  print(m1.values()); 
  
  SortedMap sm = new TreeMap();
  sm.put("map", "TreeMap");
  sm.put("schildt", "java2");
  sm.put("mathew", "Hyden");
  sm.put("schildt", "java2s");
  print(sm.keySet()); 
  print(sm.values());
  
  LinkedHashMap lm = new LinkedHashMap();
  lm.put("map", "LinkedHashMap");
  lm.put("schildt", "java2");
  lm.put("mathew", "Hyden");
  lm.put("schildt", "java2s");
  print(lm.keySet()); 
  print(lm.values());
  </code></pre>