Подсчёт повторяющихся значений в массиве!
Когда нужно понять структуру данных, важно знать, какие значения повторяются. В Java достаточно пройтись по массиву и заполнять
Создаём массив с повторяющимися элементами:
Подсчитываем частоту элементов через
Выводим результат:
🔥 На выходе получаем компактную статистику по значениям. Такой способ работает для любых типов чисел, строк и объектов.
👉 Java Ready | #практика
Когда нужно понять структуру данных, важно знать, какие значения повторяются. В Java достаточно пройтись по массиву и заполнять
Map.Создаём массив с повторяющимися элементами:
int[] nums = {1, 2, 3, 2, 3, 3, 4, 1};Подсчитываем частоту элементов через
HashMap:var freq = new java.util.HashMap<Integer, Integer>();
for (int n : nums) {
freq.put(n, freq.getOrDefault(n, 0) + 1);
}
Выводим результат:
freq.forEach((k, v) -> System.out.println(k + " -> " + v + " раз"));
🔥 На выходе получаем компактную статистику по значениям. Такой способ работает для любых типов чисел, строк и объектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤4😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Если хочешь разобраться в теме глубже, чем позволяют блоги и туториалы, загляни на этот сайт. Здесь тысячи публикаций по IT, математике, кибербезопасности, машинному обучению и не только. Можно искать по ключевым словам и даже цитировать в своих проектах или статьях.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5🤝5❤1😁1
Скрытые риски автобоксинга и анбоксинга!
Сегодня рассмотрим одну из скрытых ловушек Java — автобоксинг и анбоксинг. Эти механизмы удобны, но могут вызывать неожиданные ошибки, влияя на производительность и корректность работы кода
При сравнении объектов-оберток (например,
Значения от -128 до 127 кешируются
Используйте метод
А при анбоксинге объекта-обертки, содержащего
Проверяйте объект на null перед анбоксингом:
🔥 Эти знания помогут вам избежать неожиданных ошибок и сделать код более надежным.
👉 Java Ready | #практика
Сегодня рассмотрим одну из скрытых ловушек Java — автобоксинг и анбоксинг. Эти механизмы удобны, но могут вызывать неожиданные ошибки, влияя на производительность и корректность работы кода
При сравнении объектов-оберток (например,
Integer) с использованием оператора == вы можете получить неожиданный результат:Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true
Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false
Значения от -128 до 127 кешируются
JVM для оберток Integer. Поэтому ссылки на объекты с такими значениями указывают на один и тот же объект, а вне этого диапазона создаются новые экземпляры. Используйте метод
.equals() для сравнения значений. System.out.println(c.equals(d)); // true
А при анбоксинге объекта-обертки, содержащего
null, возникает NullPointerException:Integer value = null;
int result = value; // Ошибка: NullPointerException
Проверяйте объект на null перед анбоксингом:
if (value != null) {
int result = value;
}🔥 Эти знания помогут вам избежать неожиданных ошибок и сделать код более надежным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍4🔥3
Например,
/bin содержит системные бинарные файлы, а /etc — конфигурации, управляющие поведением системы.На картинке — директории Linux, их назначение и место в иерархии.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5❤3🤝2
Часто нужно превратить серию кадров в видео. Java отлично подходит для того, чтобы управлять этим процессом и автоматизировать вызов
ffmpeg.В этом посте:
• Формируем команду;
• Запускаем процесс;
• Ждём завершения работы.
Такой подход удобно использовать в пайплайнах рендеринга, всё работает быстро и просто.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍3
В Java строки неизменяемы, и для работы с ними есть десятки встроенных методов.
На картинке базовые и самые используемые для поиска, модификации, работа с регистром и регулярками, преобразованием
Сохрани себе что бы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥4😁1
Создание HTML-файла с таблицей данных!
HTML удобно использовать, когда нужно красиво представить данные. Java может собрать полноценную таблицу и сохранить её как файл, который откроется в любом браузере.
Подготавливаем данные для таблицы:
Создаём базовый каркас HTML-страницы:
Добавляем строки таблицы, первая строка будет заголовком:
Закрываем HTML-структуру:
Сохраняем готовый HTML в файл:
🔥 В результате появляется файл
👉 Java Ready | #практика
HTML удобно использовать, когда нужно красиво представить данные. Java может собрать полноценную таблицу и сохранить её как файл, который откроется в любом браузере.
Подготавливаем данные для таблицы:
var rows = java.util.List.of(
new String[]{"Имя", "Возраст", "Город"},
new String[]{"Alice", "22", "Paris"},
new String[]{"Bob", "30", "Berlin"}
);
Создаём базовый каркас HTML-страницы:
var sb = new StringBuilder();
sb.append("""
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<style>table,td,th{border:1px solid #000;border-collapse:collapse;padding:4px;}</style>
</head><body><table>
""");
Добавляем строки таблицы, первая строка будет заголовком:
for (int i = 0; i < rows.size(); i++) {
var r = rows.get(i);
sb.append("<tr>");
for (var cell : r) {
var tag = (i == 0) ? "th" : "td";
sb.append("<").append(tag).append(">")
.append(cell)
.append("</").append(tag).append(">");
}
sb.append("</tr>");
}Закрываем HTML-структуру:
sb.append("</table></body></html>");Сохраняем готовый HTML в файл:
java.nio.file.Files.writeString(
java.nio.file.Path.of("report.html"),
sb.toString()
);
🔥 В результате появляется файл
report.html, таблица с данными, которую можно открыть в браузере или отправить в отчёте.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Для мониторинга сервисов или автоматизации бывает важно быстро понять, сайт отвечает или нет. С современным
HttpClient это можно сделать в несколько строк, отправить запрос, получить код ответа и обработать таймауты.В этом посте:
• Создаём HttpClient и отправляем запрос;
• Получаем статус доступности сайта;
• Добавляем таймаут для медленных сервисов.
Такой способ подходит для утилит, CI/CD, мониторинга и любых скриптов, работающих с внешними API.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Faker — позволяет легко вставлять случайные имена, адреса, номера телефонов, даты и другие данные прямо в ваш код.
Очень удобно при разработке и тестировании, особенно если нужно наполнить макеты реалистичными значениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3😁1
Создаём ZIP-архив из нескольких файлов!
Иногда нужно собрать несколько файлов в один архив. Java умеет делать ZIP без сторонних библиотек только стандартный пакет
Готовим список файлов, которые нужно упаковать:
Указываем имя будущего ZIP-архива и путь к нему:
Открываем поток для записи ZIP-архива:
Добавляем каждый файл в архив как отдельную запись:
Закрываем архив и сообщаем пользователю о результате:
🔥 В итоге получаем
👉 Java Ready | #практика
Иногда нужно собрать несколько файлов в один архив. Java умеет делать ZIP без сторонних библиотек только стандартный пакет
java.util.zip. Достаточно перечислить файлы, открыть поток и записать их в архив по очереди.Готовим список файлов, которые нужно упаковать:
var files = java.util.List.of(
"notes.txt",
"image.png",
"data.json"
);
Указываем имя будущего ZIP-архива и путь к нему:
var zipPath = java.nio.file.Path.of("archive.zip");Открываем поток для записи ZIP-архива:
var zip = new java.util.zip.ZipOutputStream(
java.nio.file.Files.newOutputStream(zipPath)
);
Добавляем каждый файл в архив как отдельную запись:
for (var name : files) {
var path = java.nio.file.Path.of(name);
zip.putNextEntry(new java.util.zip.ZipEntry(path.getFileName().toString()));
java.nio.file.Files.copy(path, zip);
zip.closeEntry();
}Закрываем архив и сообщаем пользователю о результате:
zip.close();
System.out.println("Готово! Файлы упакованы в " + zipPath);
🔥 В итоге получаем
archive.zip, в котором лежат все указанные файлы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт с огромной коллекцией задач по программированию, от самых простых до тех, что реально заставят подумать.
Учиться можно на абсолютно любом языке. Отличный способ подтянуть логику, научиться писать аккуратный код и подготовиться к собесам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6🤝5
Получение хоста и локального IP
Когда нужно узнать имя машины или её локальный IP, класс
Получаем информацию о текущем устройстве:
Имя хоста:
Локальный IP-адрес машины:
🔥 Часто используется для логирования, настройки сетевых сервисов, диагностики и внутренних API.
👉 Java Ready | #совет
Когда нужно узнать имя машины или её локальный IP, класс
InetAddress делает это в один вызов.Получаем информацию о текущем устройстве:
InetAddress host = InetAddress.getLocalHost();
Имя хоста:
System.out.println("Имя хоста: " + host.getHostName());Локальный IP-адрес машины:
System.out.println("IP-адрес: " + host.getHostAddress());🔥 Часто используется для логирования, настройки сетевых сервисов, диагностики и внутренних API.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4
Когда нужно генерировать уникальные значения или надёжные случайные числа, лучше использовать более мощные инструменты, чем просто new Random(). Они обеспечивают большую надёжность и безопасность.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍6🤝1