|
|
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Подскажите, пожалуйста, как сделать быстрый поиск (без перебора всех элементов ArrayList), но поиск должен быть по строковому значению поля. В ArrayList у меня FTPFile, а искать нужно по FTPFile.getName(). Вот так не получается: Код: java 1. 2. 3. 4. 5. 6. 7. Возвращает false. Что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2017, 16:59 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
LittleLoyaВсем доброго времени суток. Подскажите, пожалуйста, как сделать быстрый поиск (без перебора всех элементов ArrayList), но поиск должен быть по строковому значению поля. В ArrayList у меня FTPFile, а искать нужно по FTPFile.getName(). Вот так не получается: Код: java 1. 2. 3. 4. 5. 6. 7. Возвращает false. Что не так делаю? У вас в listFTPFiles что? Файлы или их имена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2017, 17:09 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
Вот набор рецептов для вопрос про поиск в списке по полю. https://stackoverflow.com/questions/18852059/java-list-containsobject-with-field-value-equal-to-x "Быстрый поиск (без перебора всех элементов ArrayList)" - это другая тема. Единственный вариант для структуры типа список это бинарный поиск в упорядоченном массиве. То есть у вас все файлы должны быть отсортированы по имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2017, 17:12 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
SQL2008, файлы (тип FTPFile), получаю так: Код: java 1. 2. но сравнивать нужно по имени. Blazkowicz, спасибо большое! Получилось так: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2017, 17:49 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
LittleLoyaПолучилось так: Код: java 1. А с чего вы взяли, что такое решение удовлетворяет условию без перебора всех элементов ArrayList ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 08:35 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
Treeset жеж с компаратором по файлнэйму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2017, 00:58 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
13-й ПилигримА с чего вы взяли, что такое решение удовлетворяет условию без перебора всех элементов ArrayList ? Не знаю, думала, что без перебора будет быстрее. Сейчас попробовала два варианта, тот, что выше, и обход всех элементов списка. Замеры System.nanoTime() дают такие цифры: Time execute stream.filter = 1982537841 Time execute cyrcle = 23015217 Это что получается, циклом перебирать быстрее что-ли? Ещё заметила, что имена файлов уже отсортированы по алфавиту, интересно, на каком этапе происходит сортировка? Получается вот тут: Код: java 1. listFiles возвращает уже отсортированный список файлов? no56892Treeset жеж с компаратором по файлнэйму. А можно примерчик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 17:47 |
|
||
|
Поиск в ArrayList по полю класса.
|
|||
|---|---|---|---|
|
#18+
LittleLoyaЭто что получается, циклом перебирать быстрее что-ли? Обычно, этим вопросом задаются во время изучения стримов. Да, они медленее в актуальных версиях Java. Их польза только в читаемости. LittleLoyaЕщё заметила, что имена файлов уже отсортированы по алфавиту, интересно, на каком этапе происходит сортировка? Может даже на FTP сервере они так записаны. Проверьте любым FTP клиентом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 17:50 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39471654&tid=2122817]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
96ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 416ms |

| 0 / 0 |
