Перейти на конкретный объект в списке массивов в Java? - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть список Array, который содержит объекты ресторанов

ArrayList<Restaurants> array_sort = new ArrayList<Restaurants>();

Объект ресторана содержит его имя и идентификаторПомимо этого есть алфавитный указатель.Мне нужно перейти на конкретную букву в массиве, когда пользователь нажимает на индексную букву.Это изображение даст вам хорошую идею.

enter image description here

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 17 февраля 2012

Использование ArrayList для этой задачи не очень хорошая идея, поскольку она не обеспечивает эффективного решения вашей проблемы.Я бы предложил использовать TreeMap<String,Resturant>.Преимущество TreeMap состоит в том, что у него есть метод

public NavigableMap<K,V> subMap(K fromKey,
                            boolean fromInclusive,
                            K toKey,
                            boolean toInclusive)

, который возвращает часть карты, которая содержит только элементы, необходимые для конкретной буквы, уже отсортированной.Эта подкарта подкреплена полной, так что это легкий объект.

Вы можете легко сделать что-то вроде subMap("a", true, "b", false).

0 голосов
/ 17 февраля 2012

Самый простой вариант - иметь карту, отображающую индексы отображения в список объектов ресторана.

0 голосов
/ 17 февраля 2012

Вы можете перечислить элементы в каждой из букв до этой буквы, а затем использовать http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...