2016-08-29 3 views
0

Ich habe eine Eigenschaftendatei mit folgenden Schlüsselwerten. Bitte beachten Sie, dass die Werte auch hier eindeutig sind.Find Schlüsselname basierend auf eindeutigen Wert aus einer Eigenschaftendatei

ID1=SOMEIDVALUE1 

ID2=SOMEIDVALUE2 

ID3=SOMEIDVALUE3 

ID4=SOMEIDVALUE4 

In einigen Fällen muß ich die Schlüsselnamen aus der Eigenschaftendatei auf SOMEIDVALUE (Wert) auf der Basis holen.

Mögliche Lösung:

a) Erstellen Sie eine neue Propperty mit Reverse-Mappings

b) Legen Sie alle Daten in einer Karte (Schlüssel-Wert) und eine neue inverse Karte erstellen.

Bitte schlagen Sie vor, wenn für das obige Szenario eine andere beste Lösung vorhanden ist.

Hinweis: Ich möchte nicht die Zuordnungen in DB speichern, sonst kann SQL-Abfrage das lösen.

+0

Es klingt wie Sie bereits einige Lösungen haben. Wie es scheint, scheint es, als ob Sie hier Eigenschaften-Dateien missbrauchen/missbrauchen. – CollinD

+0

Beachten Sie, dass es keinen großen Unterschied zwischen der Verwendung eines neuen umgekehrten "Properties" -Objekts und der Verwendung einer neuen "Map" gibt. Ein 'Properties'-Objekt ist eine erweiterte' HashTable', und ich glaube nicht, dass die subtilen Implementierungsunterschiede hier relevant sind. – RealSkeptic

Antwort

0

Da Sie eindeutige Kombinationen haben, können die bidirektionalen Karten nützlich sein.

Sie bei Guave schauen bimap

BiMap.inverse() gibt eine Ansicht, in der die Position des Schlüsseltypen und Werttypen getauscht werden.

BiMap<String, Integer> userId = HashBiMap.create(); 
String userForId = userId.inverse().get(id); 
Verwandte Themen