Rufen Sie einen ArrayListMultimap Key
-
20-09-2019 - |
Frage
Ich bin Guava der containsValue(Object value)
die prüft, ob der Multimap den angegebenen Wert für jeden Schlüssel enthält. Sobald ich feststellen, das ist wahr, was der beste Weg ist, sagte Schlüssel zurückzuholen?
ArrayListMultimap<String, Integer> myMap = ArrayListMultimap.create();
if (myMap.containsValue(new Integer(1))
{
// retrieve the key?
}
Lösung
Statt containsValue
verwenden können Sie über myMap.entries () die eine Sammlung aller Schlüssel-Wert-Paare zurückgibt. Der Iterator durch die Sammlung zurückgegeben erzeugt quert die Werte für einen Schlüssel, gefolgt von den Werten eines zweiten Schlüssels, und so weiter:
Integer toFind = new Integer(1);
for (Map.Entry<String, Integer> entry: myMap.entries()) {
if (toFind.equals(entry.getValue())) {
// entry.getKey() is the first match
}
}
// handle not found case
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow