Поскольку внутренний Map
может иметь только два ключа, вы можете заменить его на собственный класс:
final Map<String,Map<Boolean,String>> primaryMap = new HashMap<>();
может быть:
final Map<String, Foo> map = new HashMap<>();
и выможет заполнить его, например:
map.put("DOG", new Foo("A", "B"));
, где конструктор Foo
может быть:
public Foo(String valueForTrue, Sting valueForFalse){
this.valueForTrue = valueForTrue;
this.valueForFalse = valueForFalse;
}
Это сэкономит некоторую память (потребуется гораздо меньше объектов)но в целом это сделает ваш код намного понятнее.
Конечно, если вы можете добавить значение String
только для true
в случае false
, вы можете предпочесть фабрику общедоступному конструктору вFoo
таких как:
private Foo(){
}
public static Foo ofTrue(String valueForTrue){
Foo foo = new Foo();
foo.valueForTrue = valueForTrue;
return foo;
}
public static Foo ofFalse(String valueForFalse){
Foo foo = new Foo();
foo.valueForFalse = valueForFalse;
return foo;
}
public static Foo of(String valueForTrue, Sting valueForFalse){
Foo foo = new Foo();
foo.valueForTrue = valueForTrue;
foo.valueForFalse = valueForFalse;
return foo;
}