Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > перебор массива


Автор: Alone 20.10.2003, 15:17
Подскажите какой способ хранения данных использовать лучше, чтоб был быстрый перебор массива?
String[] ?
LinkedList ?
Other ?

Задача состоит в реализации алогоритма поиска по нужному полю в 2хмерном массиве... Вот, думаю, какй тип данных использовать?

Автор: Sun 20.10.2003, 18:06
Использование классов вроде ArrayList или LinkedList несколько препредпочтительнее, чем просто массив, так как они содержат много вспомагательных методов для работы с данными, в том числе и поиск. Но для работы с двухмерным массивом они не предусмотрены. Можно правда создать список, каждым элементом которого будет ссылка на другой список, правда при таком подходе усложняется доступ к элементам. Хотя эту сложность можно инкапсулировать в методы доступа к элементам. Например String getElement(int i, int j).

Мне кажется, если ты работаешь с двухмерным массивом, то лучше использовать массив массивов String[][]. Работать с ним легче, чем со списком списков. Но тебе придется самому разработать алгоритм поиска (хотя-бы простым перебором элементов).

Автор: DarkDS 20.10.2003, 19:33
Зависимости между измерениями есть? smile.gif

ЗЫ. Оффтоп... Сорри в работе был... Еще объясниения про листенеры нужны?

Автор: Alone 21.10.2003, 10:48
Цитата(Sun @ 20.10.2003, 18:06)
Мне кажется, если ты работаешь с двухмерным массивом, то лучше использовать массив массивов String[][]. Работать с ним легче, чем со списком списков. Но тебе придется самому разработать алгоритм поиска (хотя-бы простым перебором элементов).

Дык в том то и дело, что в любом случае придется самому реализацию поиска писать.
Беда еще в том, что массив то динамически изменяемый. IMHO Sting[][] тут не прокатит...
Я пока что остановился на LinkedList

to DarkDS:
Конечно! Я уже так долго жду в том топике smile.gif

Автор: DarkDS 21.10.2003, 12:23
Цитата(Alone @ 21.10.2003, 10:48)
Дык в том то и дело, что в любом случае придется самому реализацию поиска писать.
Беда еще в том, что массив то динамически изменяемый. IMHO Sting[][] тут не прокатит...
Я пока что остановился на LinkedList

О Листах.
Тут такое дело. Если тебя устраивает перебор (то есть не нужно брать элемент по индексуб а нужно будет переберать все элементы по порядку) - то твой выбор как раз Линкед лист (причем переберать нужно будет через Итератор) так как у него связанные объекты и если обращатся к гету, то он каждый раз перебирает чайлдов (половинчатым приближением... Не помню как правильно называется)
В то время как Аррай лист возращает элемент из аррея (что на быстрее на много). Хотя у аррай листа есть другой минус... В случае превышения размеров массива его размер увеличивается, что тоже берет какое то время... smile.gif Но по большому счету это компенсируется скоростью гета...

Автор: Alone 22.10.2003, 09:21
Пока что на отработке технологии у меня один элемент LinkedList содержит String[n].

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)