正在 JAVA 中获取树图中唯一值的所有键

Fetching all keys for unique value in treemap in JAVA

我有一个树状图,其中以国家/地区作为值,以相应的州作为键,这样键是唯一的,值是重复的。我想获取唯一值的所有键(即我想通过传递该特定国家/地区来获取该国家/地区的所有州)。我怎么做?如果我需要提供任何其他信息,请告诉我。

这里有一些代码,希望能帮助您前进。 post 的一项观察是,对于 Map 中的给定键,您不能拥有多个值。该值需要是一个列表或其他可以包含多个值的对象类型。

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));