title: Java in memory SQL Table like data structure
body: <p>Several times I have wanted a data structure that is similar to a SQL Table
  where you can select on various fields and multiple fields. Similar to an in memory SQL implementation except that I don't want to store that many objects in the data structure. </p>
  
  <p><strong>I also require the object to be serializable through standard Java means.</strong></p>
  
  <p>I have done this before with multiple hash tables or custom hash keys but it ended up being a lot of code and very specific the problem.</p>
  
  <p>I have also used Groovy with its closure ability and gpath to help but I don't always have it available (different projects).</p>
  
  <p><em>EDIT: I think my problem is more of an object traversal/selection problem 
  Here are some interesting projects:</em></p>
  
  <ul>
  <li><a href="http://josql.sourceforge.net/">http://josql.sourceforge.net/</a></li>
  <li><a href="http://homepages.mcs.vuw.ac.nz/~djp/JQL/">http://homepages.mcs.vuw.ac.nz/~djp/JQL/</a></li>
  <li><a href="http://today.java.net/pub/a/today/2006/08/03/java-object-querying-using-jxpath.html">http://today.java.net/pub/a/today/2006/08/03/java-object-querying-using-jxpath.html</a></li>
  <li><a href="http://code.google.com/p/lambdaj/">http://code.google.com/p/lambdaj/</a> (I used this in the past and it was.... slow...)</li>
  <li><a href="http://jedi.codehaus.org/">http://jedi.codehaus.org/</a> Jedi</li>
  </ul>
  
  <p>However the downside to most of these projects is that they are much slower than accessing the objects directly (non reflection getter/setter) and definitely slower than an index (hash).</p>