title: Hash Join Algorithm
body: <p>I have two tables, each one stored in a List.
  The table has two columns (thus arrays in lists are of size two)</p>
  
  <pre><code>List&lt;int[]&gt; tablea;
  List&lt;int[]&gt; tableb;
  </code></pre>
  
  <p>Content of tablea</p>
  
  <pre><code> a b 
  {1,2}
  {3,4}
  {5,6}
  </code></pre>
  
  <p>content of tableb</p>
  
  <pre><code> b c
  {2,3}
  {2,4}
  {6,7}
  </code></pre>
  
  <p>Now I wish to join two tables by field b, hence the result is</p>
  
  <pre><code> a b c
  {1,2,3}
  {1,2,4}
  {5,6,7}
  </code></pre>
  
  <p>I know I can do this is sort merge join algorithms, and the algorithms is quite intuitive.
  But I heard hybrid hashjoin(mentioned here <a href="http://en.wikipedia.org/wiki/Hash_join#_note-1" rel="nofollow">http://en.wikipedia.org/wiki/Hash_join#_note-1</a>) is faster.</p>
  
  <p>May I know how to use hybrid hashjoin algorithms to join tablea and tableb in C#(Preferably) or java?
  (What I concern here is speed rather than space) </p>