title: How can I properly relate multiple BiMap collections using shared keys?
body: <p>I have the following BiMap collections: </p>
  
  <pre><code>BiMap&lt;String,String&gt; accessIds = HashBiMap.create();
  accessIds.put("FOO","accessId 1"); //This access Id is common to both FOO and BAR
  
  BiMap&lt;String,String&gt; merchants = HashBiMap.create();
  merchants.put("FOO", "merchant 1"); //Both FOO and BAR each have unique merchants
  merchants.put("BAR", "merchant 2");
  </code></pre>
  
  <p>These are 2 of the 4 total collections I currently have. All 4 collections share the same keys, but different values. </p>
  
  <p>The question I have is: <strong>How can I ensure that I can get <code>merchant 2</code> when I have an accessIds key of <code>FOO</code>?</strong></p>
  
  <p>Before someone points out that these two collections do not, in fact, share the same keys, please remember that a BiMap enforces unique values so I am unable to list <code>"BAR","accessId 1"</code> in the collection.</p>
  
  <p>I'm not convinced that BiMap is the right collection, but I do make use of its <code>inverse()</code> method. If there is a collection better suited ( or some other method that I am overlooking ) please let me know. </p>
  
  <p>FYI: I use Guava-14.0-rc1 for the BiMap collection. </p>