По соображениям Struts мне нужна отсортированная карта, которая всегда возвращает ненулевое значение.
Для моего конкретного случая у меня есть следующая реализация, и отлично работает :
public class NonEmptyMap extends TreeMap<String, List<MyObject>> {
@Override
public List<MyObject> get(Object key) {
final List<MyObject> result = super.get(key);
if (result == null) {
super.put((String) key, new NonEmptyList<MyObject>(MyObject.class));
}
return super.get(key);
}
}
NonEmptyList
- это специальная версия списка, которая всегда возвращает ненулевой объект. Например, nonEmptyList.get(2)
вызов для nonEmptyList размера 1 будет причиной создания 2 пустых MyObject
объектов, вставки их в список и возврата последнего элемента в вызов клиента.
Я хотел бы обобщить реализацию на поддержка любых Key/Value
Есть ли готовые реализации библиотеки?