ru
Feedback
Java Geek

Java Geek

Открыть в Telegram

Практичные советы, лайфхаки и код для Java-разработчиков. Каждый пост — реальная польза. Учим Java на примерах. По всем вопросам @evgenycarter

Больше
2 447
Подписчики
Нет данных24 часа
+27 дней
+530 день
Архив постов
Бинарный поиск в массивах Допустим, мы хотим вставить новый элемент в отсортированную таблицу. Arrays.binarySearch() возвраща
Бинарный поиск в массивах Допустим, мы хотим вставить новый элемент в отсортированную таблицу. Arrays.binarySearch() возвращает индекс ключа поиска, если он содержится в таблице. В противном случае она возвращает точку вставки, которую мы можем использовать для подсчета индекса для нового ключа: -(insertion point)-1. Более того, метод binarySearch является самым простым и эффективным методом поиска элемента в отсортированном массиве в Java. Рассмотрим следующий пример. У нас есть таблица ввода с четырьмя элементами, упорядоченными по возрастанию. Мы хотели бы вставить номер 3 в эту таблицу. Вот как мы можем подсчитать индекс точки вставки. @java_geek

Пустая коллекция вместо Null Если ваша программа может возвращать коллекцию, которая не содержит ни одного значения, убедитес
Пустая коллекция вместо Null Если ваша программа может возвращать коллекцию, которая не содержит ни одного значения, убедитесь, что возвращена именно пустая коллекция, а не Null. Это сэкономит вам время на различные проверки. @java_geek

Перегрузка в Java Перегрузка позволяет различным методам иметь одно и то же имя, но разные сигнатуры, где сигнатура может отл
Перегрузка в Java Перегрузка позволяет различным методам иметь одно и то же имя, но разные сигнатуры, где сигнатура может отличаться по количеству входных параметров или по типу входных параметров, либо по обоим этим признакам. @java_geek

Проверка четности или нечетности числа без использования оператора % Хотя этот трюк не намного лучше, чем использование опера
Проверка четности или нечетности числа без использования оператора % Хотя этот трюк не намного лучше, чем использование оператора %, но иногда он все-таки более эффективен (с большими числами). @java_geek

Подчеркивание в числовых литералах В Java SE 7 и более поздних версиях символы подчеркивания могут использоваться в числовых
Подчеркивание в числовых литералах В Java SE 7 и более поздних версиях символы подчеркивания могут использоваться в числовых литералах без появления каких-либо предупреждений или ошибок в выводе. @java_geek

Объединение хеш-таблиц Объединять два хеша, итерируя их значения вручную, весьма неэффективно. Вот альтернативное решение это
Объединение хеш-таблиц Объединять два хеша, итерируя их значения вручную, весьма неэффективно. Вот альтернативное решение этой задачи, которое точно вам понравится. @java_geek

Цикл foreach JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет после
Цикл foreach JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет последовательно пройти весь массив без использования индекса переменной. Следующий код отображает все элементы в массиве myList. @java_geek

Захват координат курсора Чтобы захватить события мыши, необходимо реализовать интерфейс MouseMotionListener. Когда курсор поп
Захват координат курсора Чтобы захватить события мыши, необходимо реализовать интерфейс MouseMotionListener. Когда курсор попадает в определенную область, срабатывает обработчик события mouseMoved, из которого можно получить точные координаты. @java_geek

Методы start и end Выше представлен пример, в котором производится подсчет количества раз, когда в строке ввода встречается с
Методы start и end Выше представлен пример, в котором производится подсчет количества раз, когда в строке ввода встречается слово "кот". Как видим, в данном примере используются границы слов с целью удостоверения в том, что буквы "c" "a" "t" не являются частью другого слова. Также отображаются определенные полезные сведения касательно нахождения совпадения в вводимой строке. Метод start производит возврат начального индекса в последовательности, захваченной в данной группе в ходе предыдущей операции поиска совпадений, а end производит возврат индекса к последнему совпавшему символу, плюс один. @java_geek

Поиск позиции для вставки числового элемента в массив Есть небольшой интересный прием, позволяющий найти позицию, в которую з
Поиск позиции для вставки числового элемента в массив Есть небольшой интересный прием, позволяющий найти позицию, в которую запрошенный элемент может быть вставлен в отсортированный массив. @java_geek

Выполнение консольных команд Java позволяет выполнять консольные команды прямо из кода, используя класс Runtime. Очень важно
Выполнение консольных команд Java позволяет выполнять консольные команды прямо из кода, используя класс Runtime. Очень важно не забывать об обработке исключений. Например, давайте попробуем открыть файл PDF через терминал Java (на Linux’e). @java_geek

Меняем местами две переменные в одной строке Многие знают, что в Python можно красиво поменять значения переменных в одну стр
Меняем местами две переменные в одной строке Многие знают, что в Python можно красиво поменять значения переменных в одну строку: a, b = b, a Можно ли что-то похожее сделать в Java? Да. На картинке показан пример, но в реальных проектах так делать не стоит. @java_geek

Отправка email Отправить электронную почту на Java очень просто. Вам просто нужно установить Java Mail и указать путь к нему
Отправка email Отправить электронную почту на Java очень просто. Вам просто нужно установить Java Mail и указать путь к нему в пути к классам проекта. @java_geek

Создание объектов только при необходимости Создание объектов – одна из самых затратных операций в Java. Лучшая практика – соз
Создание объектов только при необходимости Создание объектов – одна из самых затратных операций в Java. Лучшая практика – создавать их только при необходимости, когда они действительно нужны. @java_geek

Оптимизация строк При конкатенации строк на Java с помощью оператора +, например, в цикле for, каждый раз создается новый объ
Оптимизация строк При конкатенации строк на Java с помощью оператора +, например, в цикле for, каждый раз создается новый объект String, что приводит к потере памяти и увеличению времени работы программы. Также следует избегать создания Java строки с помощью конструктора класса. @java_geek

Метод replace() Заменяет символами подстроки данной строки буфера (StringBuffer) заданные символы в строке. Другими словами м
Метод replace() Заменяет символами подстроки данной строки буфера (StringBuffer) заданные символы в строке. Другими словами метод позволяет в Java заменить символы в строке между указанными начальным и конечным индексами. Параметры: start — начальный индекс, включительно; end — конечный индекс, не включая; str — строка, которая заменит предыдущее содержимое. @java_geek

Содержимое директории Java позволяет получить имена всех подкаталогов и файлов в папке в виде массива, который затем можно по
Содержимое директории Java позволяет получить имена всех подкаталогов и файлов в папке в виде массива, который затем можно последовательно просмотреть. @java_geek

Метод subSequence() Возвращает новую последовательность символов, которая является подпоследовательностью этой последовательн
Метод subSequence() Возвращает новую последовательность символов, которая является подпоследовательностью этой последовательности, другими словами — возвращает последовательность символов из строки, начиная и заканчивая указанными индексами. @java_geek

Метод insert() Вставляет символы в данную строку буфера (StringBuffer). Подстрока добавляется перед указанным индексом. @java
Метод insert() Вставляет символы в данную строку буфера (StringBuffer). Подстрока добавляется перед указанным индексом. @java_geek

Метод split() Возвращает массив строк, вычисленных путем разделения данной строки вокруг данного регулярного выражения. Парам
Метод split() Возвращает массив строк, вычисленных путем разделения данной строки вокруг данного регулярного выражения. Параметры: regex — разграничение регулярного выражения; limit — порог, результатом которого означает, как много строк, должно быть возвращено. @java_geek