正在 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));
我有一个树状图,其中以国家/地区作为值,以相应的州作为键,这样键是唯一的,值是重复的。我想获取唯一值的所有键(即我想通过传递该特定国家/地区来获取该国家/地区的所有州)。我怎么做?如果我需要提供任何其他信息,请告诉我。
这里有一些代码,希望能帮助您前进。 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));