Miffer: исправил исходный пример. Теперь данный пример переименовывает все файлы в той же папке с расширением .jpg по вашему стандарту.
У меня работает нормально
Алексей Сундуков:
Если вас устроит такое решение: то перед началом тестов запускайте Selenium Hub через PHP
shell_exec("java -jar Standalone.jar arg1");
а потом пользуйтесь https://github.com/facebook/php-webdriver
Но ваши потребности похожи на какое-то велосипедное решение.
Алексей Сундуков:
Да приведенный код на Java. Под headless я подразумеваю то, что вы в принципе не увидите никакого браузера. Не через VNC, не через xVFB монитор. Потому что его просто нет и он не будет запущен на отрисовку. У Selenium есть такая возможность и встроенный headless браузер.
Я все равно не понимаю, что конкретно вы пытаетесь сделать.
Вы можете запустить Standalone Server - и конектиться к нему через SeleniumRC
Вы можете развернуть Selenium Grid - и конектиться к нему по Selenium RC\WebDriver
Вы можете запускать FF нативно, использую FireFoxdriver, который и будет транслировать инструкции от вашей программы к FF.
Как минимум полноценный функционал Selenium'a поддерживается на C#\Python\Java.
Что за бага с Phantom если не секрет?
Eugene Voevodin: Да, стоило добавить "практически всегда". Итого связные списки выигрывают на маленьких объемах данных и при большом количестве добавлений элементов в начало.
Более того, arraycopy происходит не всегда, этими байками травят джавистов для облегчения понимания происходящего. JVM не такая глупая, как хотелось бы. Но теоретически вы правы, если звезды станут не так и вы встанете не стой ноги сутра и еще много если, то операция будет занимать O(N).
Проведите простой BanchMark и почувствуйте разницу. Соглашусь с примером про очередь, со стеком - нет.
DR_Demons: Ну вам нужно было реализовать интерфейс Comparator и переопределить в нём метод compare(a,b). Который возвращает целое число.
В зависимости от того, меньше, больше, равно 0 и определяется a <>= b соответственно.
DR_Demons: как минимум про классы Collections и Comparator. Правильное определение Comparator'a решило бы вашу проблему в 3 строчки.
public static int binarySearch(List<? extends T> list,T key,Comparator<? super T> c)
kciray: JSP сейчас редко пользуются. Чаще JSF + GWT или вообще OmniFaces, всё опять же исходит из потребностей. Spring довольно полезный навык при устройстве на работу, и возможности у него довольно обширные. На мой взгляд проблема спринговых парней в том, что они потом пытаются впихнуть его всюду где только можно.
DR_Demons: итераторы удобны для связных списков и графов, т.к. многие алгоритмы для этих структур реализуются на рекурсивном подходе. В массивах они не используются, т.к. это просто усложняет понимание и ограничивает функционал работы с массивом. Априори у массива должен быть доступ к любому элементу массива за О(1).
Рекомендую почитать вам литературу про Collections и generic в частности. Там много подобных хитростей: например есть готовые реализации бинарного поиска и сортировок.
В Java нет смысла(кроме учебных целей) использовать LinkedList или другие реализации List (кроме ArrayList). Они просто работают в разы медленнее. Это происходит потому что в Java нет указателей в явном виде.
kciray: вообще Java сомнительный выбор для написания сайта. На нём быстро ничего не напишешь.
Я бы смотрел в сторону python + django, или PHP. Если так Java нравится, то jPHP
У меня работает нормально