Il serait difficile de garder une trace de toutes les cartes intérieures possibles. Il n'y a aucun doute une solution beaucoup plus efficace que le mien si vous indexé les clés et autres. Cependant, si rapide et sale travaille pour vous, essayez ceci. Vous n'avez pas mentionné une langue donc vous obtenez Java - j'espère que j'ai deviné juste!
import java.util.HashMap;
import java.util.Map.Entry;
public class InnerMap extends HashMap<String, String> {
public InnerMap getInnerMap(String key) {
InnerMap innerMap = new InnerMap();
for (Entry<String, String> entry : entrySet()) {
String existingKey = entry.getKey();
String value = entry.getValue();
if (existingKey.startsWith(key)) {
String newKey = existingKey.substring(key.length());
innerMap.put(newKey, value);
}
}
return innerMap;
}
}
public class Test {
public static void main(String[] args) {
InnerMap baseMap = new InnerMap();
baseMap.put("aabb", "one");
baseMap.put("aabbdd", "two");
InnerMap map1 = baseMap.getInnerMap("aa");
System.out.println(map1.get("bb"));// => "one"
System.out.println(map1.get("bbdd"));// => "two"
System.out.println(map1.get("aa"));// => null
InnerMap map2 = map1.getInnerMap("bb");
System.out.println(map2.get("dd"));// => "two"
}
}
Quelle est votre question? –
Quelle est la question? Vous avez déclaré ce que vous voulez, maintenant que demandez-vous? –
Y a-t-il une raison pour laquelle vous n'utilisez pas une carte>? –