- stupid блог
- веб-разработка / оптимизация / безопасность / программирование / софт
- Java-апплеты на сайтах и VPN, IPv6
- Не работает Java в Mozilla Firefox: основные причины возникновения проблемы
- Почему не работает Java в Mozilla Firefox?
- Причина 1: браузер блокирует работу плагина
- Причина 2: устаревшая версия Java
- Причина 3: некорректная работа плагина
- Причина 4: переустановка Firefox
- Списки на Java — методы интерфейса List
- Учебное видео по спискам Java
- Java List и Set
- Реализация List
- Как вставить элементы в список Java
- Вставить нулевые значения
- Добавить элементы по определенному индексу
- Вставляем все элементы из одного списка в другой
- Получить элементы из списка Java
- Как найти элементы в списке Java
- Найти последнее вхождение элемента в списке
- Проверка: содержит ли список элемент?
- Как удалить элементы из списка Java
- Очистить список
- Как сохранить все элементы из одного списка в другом
- Узнать количество элементов
- Подсписок списка
- Преобразовать list в set
- Общие списки
- Сортировка
- Сортировка списка с помощью Comparatorimplementation
- Итерации
- Итерация списка с помощью итератора
- Итерация списка с использованием цикла For-Each
- Итерация списка с помощью цикла For
- Перебор списка с использованием API Java Stream
stupid блог
веб-разработка / оптимизация / безопасность / программирование / софт
Java-апплеты на сайтах и VPN, IPv6
Возможно, эта заметка сэкономит время тем, кто столкнется с такой же проблемой. Под катом о том, почему Java-апплеты (например — банковские приложения) могут не работать, если у Вас, например, — домашний интернет от Билайн по L2TP, и как это исправить.
Лично я столкнулся с данной проблемой при попытке использования Банк-клиента одного из известных банков. Java-апплет проверки подписи никак не хотел работать и падал с ошибкой ClassNotFoundException.
Звонок в техподдержку, как это зачастую бывает, ничего не дал. Тем временем, уже убедившись, что не работает ни один апплет, даже апплет проверки установленной версии с официального сайта Java (http://java.com/ru/download/installed.jsp), — я начал поиски решения проблемы по просторам интернета.
Ситуация усугублялась наличием Антивируса, Файрвола и зоопарка версий Java, установленных на компе для разработки и тестирования, которые, по многочисленным сообщениям в интернетах — могли конфликтовать друг с другом.
Тем не менее, отключение всего, что только можно и uninstall всех версий Java с последующей установкой — не помогли.
Анализ логов Java-консоли побудил посмотреть в сторону сетевых проблем, поскольку наблюдалось примерно следующее:
— и тут я вспомнил, что при подключении по L2TP с моим интернетом от Билайн используется де-факто VPN, что и начало проливать некий свет на ситуацию.
Судя по описанному выше, происходит примерно следующее: с версии Java 7 при попытке подключения к IPv4 адресу (т.е. в данном контексте — при попытке открытия любого сайта с Java-апплетом) — Java использует IPv4-mapped IPv6 адрес (т.е. де-факто IPv6). В то же время, видимо, некоторое оборудование провайдеров (в данном случае Cisco VPN) — не поддерживает IPv6 сокеты. Как результат — не возможность установления соединения между Java и сервером.
Решением данной проблемы является запуск Java с ключом ‘-Djava.net.preferIPv4Stack=true‘, что заставит Java использовать IPv4. Для этого необходимо запустить Java Control Panel, которая, скорее всего, расположена по адресу: C:\Program Files (x86)\Java\jre7\bin\javacpl.exe. Далее — во вкладке Java, по клику на View, изменить Runtime Parameters на -Djava.net.preferIPv4Stack=true, как это показано на скриншоте ниже.
Надеюсь, данная заметка помогла Вам в решении проблемы не работающих Java-апплетов на сайтах.
Источник
Не работает Java в Mozilla Firefox: основные причины возникновения проблемы
Плагины Java и Adobe Flash Player – наиболее проблемные плагины для Mozilla Firefox, которые чаще всего отказываются функционировать в браузере. Ниже мы рассмотрим основные причины, которые могут повлиять на работоспособность плагина.
Почему не работает Java в Mozilla Firefox?
Причина 1: браузер блокирует работу плагина
Плагин Java известен не с самой положительной стороны, поскольку его наличие в браузере серьезно подрывает безопасность веб-обозревателя и компьютера в целом. В связи с этим относительно недавно разработчики Mozilla стали блокировать в своем веб-обозревателе функционирование Java.
Для начала проверим, а включена ли вообще работа Java в Mozilla Firefox. Для этого щелкните по кнопке меню браузера и пройдите к разделу «Дополнения».
В левой области окна пройдите ко вкладке «Плагины». Убедитесь, что правее от плагина Java вставлен параметр «Всегда включать». При необходимости, внесите необходимые изменения, а затем закройте окно управления плагинами.
Причина 2: устаревшая версия Java
Проблемы в работе Java могут быть вызваны тем фактом, что на вашем компьютере инсталлирована устаревшая версия плагина. В данном случае, если вы пока так и не смогли решить проблему с работоспособностью плагина, вам следует проверить его на наличие обновлений.
Для этого откройте меню «Панель управления», а затем откройте раздел «Java».
В открывшемся окне пройдите ко вкладке «Update», а затем щелкните по кнопке «Update now».
Система начнет проверку на наличие обновлений. В том случае, если ваша версия Java будет нуждаться в обновлении, вам будет предложено установить апдейт. В противном же случае на экране отобразится сообщение, говорящее о том, что на вашем компьютере установлена самая свежая версия программного обеспечения.
Причина 3: некорректная работа плагина
Следующий способ решения проблем с работой Java – это полная переустановка программного обеспечения. Подразумевая полное удаление, мы рекомендуем вам деинсталлировать программу не стандартным способом через «Панель управления» – «Удаление программ», а с помощью специальной утилиты Revo Uninstaller, которая позволит действительно полностью удалить Java с компьютер, обнаружив абсолютно все файлы данного ПО, оставшиеся в системе.
Запустите программу Revo Uninstaller. Убедитесь, что для ее запуска требуется наличие прав администратора.
Найдите в списке установленных программ Java, щелкните по ней правой кнопкой мыши и выберите пункт «Удалить».
Для начала Revo Uninstaller запустит встроенный деинсталлятор плагина, который позволит удалить Java сначала стандартным способом.
Как только деинсталляция будет завершена, Revo Uninstaller предложит запустить сканирование на предмет оставшихся файлов, связанных с Java. Рекомендуем выставить продвинутый режим сканирования, а затем запустите процедуру, щелкнув по кнопке «Сканировать».
Начнется процедура сканирования, которая займет некоторое время. Как только она будет завершена, на экране отобразятся результаты поиска сначала в системном реестре. Обращаем внимание, что удалять нудно только те ключи, которые выделены жирным.
Перейдя далее, на экране отобразятся оставшиеся папки и файлы. Просмотрите список и выделите в нем те папки, которые требуется удалить. Чтобы выделить все папки, щелкните по кнопке «Выбрать все». Завершите процедуру, щелкнув по кнопке «Удалить».
Завершив процедуру удаления, выполните перезагрузку компьютера, чтобы внесенные изменения были окончательно приняты системой. После ее завершения можно приступать к загрузке свежего дистрибутива обязательно с официального сайта разработчика.
Загрузите скаченный дистрибутив и выполните инсталляцию Java на компьютер. Перезагрузите Mozilla Firefox, чтобы плагин приступил к своей работе в браузере.
Причина 4: переустановка Firefox
Если переустановка Java так и не принесла результата, то, вероятно, проблему поможет решить полная переустановка браузера Mozilla Firefox способом, который описан немного выше.
Закончив удаление Firefox, обязательно перезагрузите компьютер, а затем загрузите свежую версию дистрибутива с официального сайта разработчика.
Обратите внимание, что постепенно Mozilla Firefox отказывается от поддержки Java, в связи с чем в любой момент ни один и способов, описанных в статье, не сможет вам помочь, поскольку внезапно браузер не будет поддерживать работу с данным плагином.
Помимо этой статьи, на сайте еще 12340 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Списки на Java — методы интерфейса List
Интерфейс Java List, java.util.List, представляет упорядоченную последовательность объектов. Элементы, содержащиеся в списке Java, вставлять и удалять в соответствии с порядком их появления в списке.
Каждый элемент в списке Java имеет индекс. Первый элемент в имеет индекс 0, второй элемент имеет индекс 1 и т.д.
Вы можете добавить любой объект в список. Если список не типизирован с использованием Java Generics, то вы можете даже смешивать объекты разных типов (классов) в одном и том же списке.
Java List — это стандартный интерфейс, который является подтипом Java Collection, что означает, что означает, что List наследуется от Collection.
Учебное видео по спискам Java
Если вы предпочитаете смотреть видео вместо чтения текста, вот видео версия этого учебника по Java List:
Java List и Set
Java List и Java Set очень похожи в том, что они оба представляют коллекцию элементов. Тем не менее, есть некоторые существенные различия.
Первое различие между Java List и Java Set состоит в том, что один и тот же элемент может встречаться в списке более одного раза. Это отличается от набора, где каждый элемент может встречаться только один раз.
Второе различие — элементы в List имеют порядок, и элементы могут повторяться в этом порядке. Набор не предполагает порядок элементов, хранящихся внутри.
Реализация List
Будучи подтипом Collection, все методы в интерфейсе Collection также доступны в Listinterface.
Поскольку List — это интерфейс, вам необходимо создать конкретную реализацию интерфейса, чтобы использовать его. Вы можете выбирать между следующими реализациями List в API коллекций Java:
- java.util.ArrayList
- java.util.LinkedList
- java.util.Vector
- java.util.Stack
Также есть параллельные реализации List в пакете java.util.concurrent.
Вот несколько примеров того, как создать экземпляр List:
Как вставить элементы в список Java
Вставить элементы (объекты) в список Java можно методом add (). Вот пример добавления элементов в список Java:
Первые три вызова add () добавляют экземпляр String в конец списка.
Вставить нулевые значения
На самом деле возможно вставить даже нулевые значения в список.
Добавить элементы по определенному индексу
Можно добавить элемент в список по определенному индексу. Интерфейс List имеет версию метода add(), которая принимает индекс в качестве первого параметра, и элемент для вставки в качестве второго параметра. Вот пример вставки элемента с индексом 0.
Если список уже содержит элементы, то теперь они будут перемещаться дальше во внутренней последовательности. Элемент, который имел индекс 0 до того, как новый элемент был вставлен в индекс 0, будет перемещен в индекс 1 и т.д.
Вставляем все элементы из одного списка в другой
Можно добавить все элементы из одного списка в другой. Сделаем это с помощью метода ListaddAll (). Результат представляет собой объединение двух списков.
Этот пример добавляет все элементы из listSource в listDest.
Метод addAll () принимает набор в качестве параметра, поэтому в качестве параметра можно передать список или набор.
Получить элементы из списка Java
Вы можете получить элементы из списка Java, используя индекс элементов. Методом get (int index). Вот пример доступа к элементам списка с использованием индексов элементов:
Также возможно итерировать элементы списка в том порядке, в котором они хранятся внутри.
Как найти элементы в списке Java
Вы можете найти элементы в списке Java, используя один из этих двух методов:
- index()
- LastIndexOf ()Метод indexOf () находит индекс первого вхождения в списке заданного элемента.
Запуск этого кода приведет к следующему результату:
Найти последнее вхождение элемента в списке
Метод lastIndexOf () находит индекс последнего вхождения в списке данного элемента.
Результат, напечатанный при запуске приведенного выше примера будет таков:
Элемент 1 встречается 2 раза. Индекс последнего равен 2.
Проверка: содержит ли список элемент?
Вы можете проверить, содержит ли Java List данный элемент, используя метод List contains ().
Чтобы определить, содержит ли List этот элемент, List будет внутренне выполнять итерации своих элементов и сравнивать каждый элемент с объектом, переданным в качестве параметра.
Поскольку можно добавить нулевые значения в список, фактически можно проверить, содержит ли список нулевое значение.
Очевидно, что если входной параметр для contains () имеет значение null, метод contains () не будет использовать метод equals() для сравнения с каждым элементом, а вместо этого использует оператор ==.
Как удалить элементы из списка Java
Вы можете удалить элементы из списка Java с помощью этих двух методов:
- remove(Object element)
- remove(int index)
remove (Object element) удаляет элемент в списке, если он присутствует. Все последующие элементы, затем перемещаются вверх по списку. Таким образом, их индекс уменьшается на 1.
Этот пример сначала добавляет элемент, а затем снова удаляет его.
Метод List remove (int index) удаляет элемент по указанному индексу.
После выполнения этого примера кода список будет содержать элементы 1 и 2 с индексами 0 и 1.
Очистить список
Интерфейс Java List содержит метод clear (), который удаляет все элементы из списка при вызове. Удаление всех элементов также называется очисткой.
Как сохранить все элементы из одного списка в другом
Метод retainAll () способен сохранять все элементы из одного списка в другом. Другими словами, метод retain () удаляет все элементы, которые не найдены в другом списке.
Результатом является пересечение двух списков.
Узнать количество элементов
Вы можете получить количество элементов вызвав метод size (). Вот пример:
Подсписок списка
Метод subList () может создавать новый List с подмножеством элементов из исходного List.
Метод subList () принимает 2 параметра: начальный индекс и конечный индекс. Начальный индекс — это индекс первого элемента из исходного списка для включения в подсписок.
Конечный индекс является последним индексом подсписка, но элемент в последнем индексе не включается в подсписок. Это похоже на то, как работает метод подстроки Java String.
После выполнения list.subList (1,3) подсписок будет содержать элементы с индексами 1 и 2.
Помните, что исходный список содержит 4 элемента с индексами от 0 до 3. Вызов list.subList (1,3) будет включить индекс 1, но исключить индекс 3, сохраняя тем самым элементы с индексами 1 и 2.
Преобразовать list в set
Вы можете преобразовать список Java в набор(set), создав новый набор и добавив в него все элементы из списка. Набор удалит все дубликаты.
Таким образом, результирующий набор будет содержать все элементы списка, но только один раз.
Обратите внимание, что список содержит элемент String 3 два раза. Набор будет содержать эту строку только один раз. Таким образом, результирующий набор будет содержать строки: element 1 , element 2 and element 3 .
Общие списки
По умолчанию вы можете поместить любой объект в список, но Java позволяет ограничить типы объектов, которые вы можете вставить в список.
Этот список теперь может содержать только экземпляры MyObject. Затем вы можете получить доступ к итерации его элементов без их приведения.
Сортировка
Вы можете отсортировать список с помощью метода Collections sort ().
Если Список содержит объекты, которые реализуют интерфейс Comparable (java.lang.Comparable), тогда эти объекты можно сравнивать. В этом случае вы можете отсортировать список следующим образом:
Класс Java String реализует интерфейс Comparable, вы можете отсортировать их в естественном порядке, используя метод Collections sort ().
Сортировка списка с помощью Comparatorimplementation
Если объекты не реализуют интерфейс Comparable или если вы хотите отсортировать объекты в порядке, отличном от их реализации compare (), вам необходимо использовать Comparatorimplementation (java.util.Comparator).
Вот код сортировки:
Обратите внимание на реализацию Comparator в приведенном выше примере. Эта реализация сравнивает только поле марки автомобилей Car. Можно создать другую реализацию Comparator, которая сравнивает номерные знаки или даже количество дверей в автомобилях.
Возможно реализовать Comparator с использованием Java Lambda. Вот пример, который сортирует объекты List of Car с использованием трех различных реализаций интерфейса Comparator, каждая из которых сравнивает экземпляры Car по своему полю:
Итерации
Вы можете выполнить итерацию списка несколькими различными способами. Три наиболее распространенных способа:
- Использование итератора
- Использование цикла for-each
- Использование цикла for
- Использование API Java Stream
Итерация списка с помощью итератора
Первый способ итерации списка — использовать итератор Java.
Вызывая метод iterator () интерфейса List.
Вызов hasNext () выполняется внутри цикла while.
Внутри цикла while вы вызываете метод Iterator next () для получения следующего элемента, на который указывает Iterator.
Если список задан с использованием Java Generics, вы можете сохранить некоторые объекты внутри цикла while.
Итерация списка с использованием цикла For-Each
Второй способ итерации List — использовать цикл for.
Цикл for выполняется один раз для каждого элемента. Внутри цикла for каждый элемент, в свою очередь, связан с переменной obj.
Можно изменить тип переменной внутри цикла for.
Итерация списка с помощью цикла For
Третий способ итерации List — использовать стандартный цикл for, подобный следующему:
Цикл for создает переменную int и инициализирует ее 0. Затем она зацикливается, пока переменная int i меньше размера списка. Для каждой итерации переменная i увеличивается.
Внутри цикла for обращаемся к элементам List с помощью метода get (), передавая в качестве параметра переменную i.
Опять же, если список напечатан с использованием Java Generics, например, для для строки, то вы можете использовать универсальный тип списка в качестве типа для локальной переменной, которая присваивается каждому элементу списка во время итерации.
Тип локальной переменной внутри цикла for теперь String. Поскольку список обычно типизируется как String, он может содержать только объекты String.
Следовательно, компилятор знает, что только метод String может быть возвращен из метода get (). Поэтому вам не нужно приводить элемент, возвращенный get (), в String.
Перебор списка с использованием API Java Stream
Четвертый способ итерации через API Java Stream. Для итерации вы должны сначала получить поток из списка. Получение потока из списка в Java выполняется путем вызова метода Liststream ().
Как только вы получили поток из списка, вы можете выполнить итерацию потока, вызвав его метод forEach ().
Вызов метода forEach () заставит Stream выполнить внутреннюю итерацию всех элементов потока.
Средняя оценка / 5. Количество голосов:
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Источник