Как я могу вернуть List<E>
с поддержкой Map<K, E>
, если у меня есть метод для сопоставления Map
значений с ключами valueToKeyMapper
?
class Foo {
private Map<Integer, String> backedMap = new HashMap<Integer, String>();
public List<String> getList() {
// NEED TO RETURN LIST BACKED BY MAP
}
public String getById(Integer id) {
return backedMap.get(id);
}
private static Integer valueToKeyMapper(String value) {
// just as exampl. In reality value will be POJO with method like getId()
return value.hashCode();
}
}
Код должен работать следующим образом (простопример):
Foo foo = new Foo();
foo.getList().add("something");
String value = foo.getById("something".hashCode());
// I should see something
Примечания:
List
должен быть изменяемым, а изменения должны распространяться в базовом Map
- Я не могу изменитьоткрытые методы объекта
Foo
, потому что он используется в других проектах - Меня не волнует порядок в
List
- Метод
getById
должен продолжать работать быстро