Использование ArrayList для этой задачи не очень хорошая идея, поскольку она не обеспечивает эффективного решения вашей проблемы.Я бы предложил использовать TreeMap<String,Resturant>
.Преимущество TreeMap состоит в том, что у него есть метод
public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
, который возвращает часть карты, которая содержит только элементы, необходимые для конкретной буквы, уже отсортированной.Эта подкарта подкреплена полной, так что это легкий объект.
Вы можете легко сделать что-то вроде subMap("a", true, "b", false)
.