Вот код, который, надеюсь, поможет вам. Одно наблюдение из вашего поста заключается в том, что вы не можете иметь более одного значения для данного ключа на карте. Значение должно быть списком или другим типом объекта, который может содержать несколько значений.
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));