Eineindeutige Map

Status
Nicht offen für weitere Antworten.

Moritz

Neues Mitglied
Gibt es eine Map-Implementierung (oder auch was ganz anderes), wo beide Werte als Key nutzbar sind (also eindeutig sind)?
Etwa in der Art: Map<X, Y> map, auf der ich dann sowohl Y y = map.get(x), als auch X x = map.get(y) ausführen kann?
 

Niki

Top Contributor
Meines Wissens nicht. Du könntest aber eine Hilfsklasse bauen die zwei Maps beinhaltet und die wichtigsten Methoden der Map implementiert. In diesen Methoden wird dann für die eine Map das erste Objekt als key genommen und bei der anderen Map das zweite.
ca. so:
Code:
public class MyMap{
  private Map m1 = null;
  private Map m2 = null;

  public MyMap(){
    m1 = new HashMap();
    m2 = new HashMap();
  }

  public void put(Object o1, Object o2){
    m1.put(o1, o2);
    m2.put(o2, o1);
  }

  public void get(Object o){
    Object erg = m1.get(o);
    if(erg == null)
      erg = m2.get(o);
    return erg;
  }

  //und so weiter...

}
 

Moritz

Neues Mitglied
Danke für die schnelle Antwort! :)

So (bzw. so ähnlich) hab ich's bisher auch gemacht. Ich dachte nur, da gäb's eventuell eine elegantere Lösung...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben