Извлечение всех ключей для уникального значения в древовидной карте в JAVA - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть древовидная карта, в которой значения стран представлены в виде значений, а в качестве ключей указаны соответствующие состояния, при этом ключи являются уникальными, а значения дублируются. Я хочу получить все ключи для уникального значения (т.е. я хочу получить все состояния страны, передав эту конкретную страну). Как я могу это сделать? Дайте мне знать, если мне потребуется предоставить какую-либо другую информацию.

1 Ответ

0 голосов
/ 04 апреля 2020

Вот код, который, надеюсь, поможет вам. Одно наблюдение из вашего поста заключается в том, что вы не можете иметь более одного значения для данного ключа на карте. Значение должно быть списком или другим типом объекта, который может содержать несколько значений.

String search = "Mexico";

// create our TreeMap
Map<String, String> stateMap = new TreeMap();
stateMap.put("CO", "USA");
stateMap.put("Ontario", "Canada");
stateMap.put("Chiapas", "Mexico");
stateMap.put("Chihuahua", "Mexico");
stateMap.put("TX", "USA");
stateMap.put("GA", "USA");

// HashSet will store the unique list of states found in the search country
Set<String> results = new HashSet();

// iterate over the source TreeMap looking for the country to match the search string
for (String state : stateMap.keySet()) {
   String country = stateMap.get(state);
   if (country.equals(search)) {
      results.add(state);
   }
}

// iterate through the results set and print each state for the search country
results.forEach(state -> System.out.println(state));
...