Метод возврата для одного ключа в MutilMap - PullRequest
0 голосов
/ 27 октября 2018
public static String getCTScanSite(String val) {
    Multimap<String, String> map = HashMultimap.create();

    map.put("07", "069");
    map.put("01", "073");
    map.put("04", "085");
    map.put("01", "086");
    map.put("96", "099");
    map.put("112", "100");
    map.put("01", "101");
    map.put("109", "102");
    map.put("106", "103");
    map.put("119", "104");

    return map.toString();
}

Какой метод мне нужно использовать, чтобы вернуть String val?Я использовал Multimap, потому что у меня есть несколько ключей.На данный момент мой вывод вернул бы все ключи.Но мне нужно только String val (передаваемая переменная).

"ctScanSite": "{01=[073, 086, 101], 04=[085], 05=[112], 07=[069], ...}"

Спасибо

мой ожидаемый результат должен возвращать один ключ:

 "ctScanSite": "01", 

1 Ответ

0 голосов
/ 27 октября 2018

Вы можете использовать invertFrom из Multimaps и инвертировать карту, а затем получить ключи из входного значения, используя invertedMap. См. Ниже:

public static String getCTScanSite(String val) {
    Multimap<String, String> map = HashMultimap.create();

    map.put("07", "069");
    map.put("01", "073");
    map.put("04", "085");
    map.put("01", "086");
    map.put("96", "099");
    map.put("112", "100");
    map.put("01", "101");
    map.put("109", "102");
    map.put("106", "103");
    map.put("119", "104");
    Multimap<String, String> invertedMap = Multimaps.invertFrom(map, ArrayListMultimap.<String, String>create());
    return invertedMap.get(val);
}
...