|
|
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Наверное скучали Итак, ситуация следующая: Есть папка с файлами, я её сканю и получаю список файлов, который аккурат кладу в arraylist. Начинаю перебирать его(arraylist) для того чтобы выкинуть лишнее. А лишнее определяется следующим образом: Например, если есть в именах последующих файлов есть имя текущего(без расширения), то из них надо оставить текущий. (Например, есть файлы system.img, system.new.dat, system.new.dat.br, из этого перечня надо оставить лишь system.img. Если, например, есть system.new.dat, system.new.dat.br, то оставить только system.new.dat, ну и по аналогии с любым именем файла(без расширения)); Второй день туплю, цикл построить не могу в голове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 22:20 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngel, Правильно ли я понимаю что берется первый файл и сравнивается с последующими? или оно может быть из середины списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 23:23 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Что значит из середины? Ты же говоришь первый типа оставляем а последующие нет. А если в середину тыкнуть откуда ты знаешь какой из них первый? ) Имхо первое что тебе надо это замутить цикл в цикле где первый элемент берется и последовательно сравнивается с остальными и если элемент первого цикла совпадает (contains) с элементом второго цикла - то мы его удаляем из листа. И так со всем. Правда сложность выйдет n2 )) Если лень писать код модно сделать обман - создаёшь объект с полем стринги и переписываешь ему методы хэшкод и иквалз таким образом чтоб иквалз выдавал тру если одна строка является частью другой строки. )) а хэш у всех одинаковый. Потом конвертишь лист в сет и вуаля )) у тебя всех по одному. Тут комплексити будет уже n Вроде. А может и нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 01:18 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
andreykaT, круто, но как пересчитывать количество элементов для каждого цикла после каждого удаления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:05 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngel, У вас пример немного не совпадает с условием. "если есть в именах последующих файлов есть имя текущего" то что на счет system.img и AsystemZ.dat ? Забавно что вы главное условие вашей бизнес-логики пишете после слова "Например". Значит ли это что есть и какие-то другие условия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:27 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngelandreykaT, круто, но как пересчитывать количество элементов для каждого цикла после каждого удаления? А зачем это? Просто нужна функция мержа, которая из двух файлов выберет кратчайший и оставит только его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:30 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
TsyklopBlackeAngel, Правильно ли я понимаю что берется первый файл и сравнивается с последующими? или оно может быть из середины списка? Я бы исходил из того что список не упорядочен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:32 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngel, Ваше условие можно интерпретировать разными способами. Но, в целом, решение сводится к тому что вам нужно из каждого имени вычислять ключ и по нему складывать в Map. Но вот с вычислением ключа возможные разные варианты иходя из расплывчатости исходного условия. Важен ли порядок файлов или только длина имён? Совпадают ли имена файлов полностью до расширения, или частично? Если нужно частичное совпадение, то может ли оно быть в любой позиции или только в начале? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:37 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, погорячился на счёт совпадения. Имена равны до расширения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:47 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngel, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 08:55 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngelBlazkowicz, погорячился на счёт совпадения. Имена равны до расширения. стоп. ты же выше сказал что и после точки учитывается? типа два имени name.some.part и name.some и name.another мы берем второе и третьему ищем совпадение дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 10:48 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Как то автор все усложнил. Можно почистить файлы по расширению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 10:54 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
mayton,например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 11:01 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
andreykaT, Метод Blazkowicz, в принципе решает проблему,однако, длинна может быть одинаковой. Да и имя файла так не найдешь(у меня берется с путями,Но это решается на раз два) Задача состоит в том чтобы оставить файлы с приоритетными расширениями, но они так же меняются при наличии/отсутствии того или иного расширения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 11:06 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
пока ты не сможешь внятно изложить логику не будет и внятного решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 11:36 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
BlackeAngelmayton,например? Ну... много варинтов вижу. Например однозначно удаляется расширение *.br. Или из всех имен ("system.*") оставить самое короткое. Вобщем список рулов должен быть максимально простым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 11:48 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Вот первый набросок, но он полон ошибок и косяков, как их исправить я е знаю. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 13:23 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Вру, не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 13:25 |
|
||
|
Перебор списка с условием.
|
|||
|---|---|---|---|
|
#18+
Вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2018, 13:31 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39612095&tid=2122199]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 275ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...