Мне нравится подход Key
.
public class Key {
private String keyA;
private String keyB;
private String keyC;
public Key(String a, String b, String c) {
keyA = "".equals(a) ? null : a;
keyB = "".equals(b) ? null : b;
keyC = "".equals(c) ? null : c;
}
public String getKey(){
return keyA + keyB + keyC;
}
// equals() can be implemented using getKey()
}
А потом:
Map<Key, String> map = new HashMap<Key, String>();
map.put(new Key("a", "",""), "only one key");
map.put(new Key("a", "b", "c"), "all keys");
Обратите внимание, что вам понадобится только одна карта, и вы все равно можете получить объект столько keyA
, поскольку он будет иметь другое значение ключа.
Конечно, если вы хотите сохранить несколько объектов с одинаковым индексом (или восстановить несколько объектов, которые начинаются с того же ключа, начиная с восстановления, как в recovery *)1011 * и Key("a", "a", "b)
при поиске Key("a", "a", "")
это не сработает, но в любом случае вы не должны использовать Map
и, вероятно, должны получить правильную базу данных.