title: Is there any data structure which can avoid duplication, preserve order and random access
body: <p>Previously, while I am looking for the data structure with the following characteristic.</p>
  
  <ul>
  <li>Avoid duplication</li>
  <li>Iteration order will be same as insertion order</li>
  </ul>
  
  <p><strong>In Java, I use <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashSet.html" rel="nofollow">LinkHashSet</a>, In Python, I use <a href="http://docs.python.org/dev/py3k/library/collections.html#collections.OrderedDict" rel="nofollow">OrderedDict</a></strong></p>
  
  <p>Now, on the top of 2 requirements, I would like to have an additional requirement</p>
  
  <ul>
  <li>Able to random access through indexing, means I can access through <code>data[123]</code></li>
  </ul>
  
  <p>Is there any data structure available? Or I need to fall back to use <code>List</code>? <code>List</code> able to full fill 2nd and 3rd requirement, but not 1st. I may need to perform manual (and slow check) during insertion, to avoid duplication?</p>