➡️ Оптимизация работы с коллекциями с помощью метода removeIf
В Java 8 был введен метод removeIf, который позволяет удалить элементы из коллекции, удовлетворяющие определенному условию, без необходимости явного использования цикла.
👩💻
@javaquiz
В Java 8 был введен метод removeIf, который позволяет удалить элементы из коллекции, удовлетворяющие определенному условию, без необходимости явного использования цикла.
👩💻
@javaquiz
👍7
➡️ Apache Commons Lang
Apache Commons Lang — это библиотека, которая расширяет стандартную библиотеку Java, предоставляя множество утилит для работы со строками, числовыми операциями, рефлексией и другими общими задачами программирования.
🗣 Если вам часто приходится манипулировать строками, работать с числами или использовать рефлексию, Apache Commons Lang может стать незаменимым помощником.
🔗 Ссылочка на доку (https://commons.apache.org/proper/commons-lang/)
👩💻
@javaquiz
Apache Commons Lang — это библиотека, которая расширяет стандартную библиотеку Java, предоставляя множество утилит для работы со строками, числовыми операциями, рефлексией и другими общими задачами программирования.
🗣 Если вам часто приходится манипулировать строками, работать с числами или использовать рефлексию, Apache Commons Lang может стать незаменимым помощником.
🔗 Ссылочка на доку (https://commons.apache.org/proper/commons-lang/)
👩💻
@javaquiz
👍3
➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию
Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.
• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.
• Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.
👩💻
@javaquiz
Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.
• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.
• Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.
👩💻
@javaquiz
➡️ Использование метода Stream.takeWhile() для фильтрации данных
Stream.takeWhile() — это метод, который появился в Java 9 и позволяет получать элементы потока до тех пор, пока выполняется заданное условие. Как только условие перестаёт выполняться, поток завершает свою работу, и оставшиеся элементы не проверяются.
• takeWhile() полезен для работы с отсортированными данными, где нужно выбрать элементы, соответствующие определённому критерию, до первого неподходящего элемента.
👩💻
@javaquiz
Stream.takeWhile() — это метод, который появился в Java 9 и позволяет получать элементы потока до тех пор, пока выполняется заданное условие. Как только условие перестаёт выполняться, поток завершает свою работу, и оставшиеся элементы не проверяются.
• takeWhile() полезен для работы с отсортированными данными, где нужно выбрать элементы, соответствующие определённому критерию, до первого неподходящего элемента.
👩💻
@javaquiz
👍1
Метод isDaemon()
Метод isDaemon() используется для определения, является ли поток демоном или нет.
Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.
👩💻
@javaquiz
Метод isDaemon() используется для определения, является ли поток демоном или нет.
Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.
👩💻
@javaquiz
👍2
⚙️ Files.move()
В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.
👩💻
@javaquiz
В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.
👩💻
@javaquiz
👍3
➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.
• Поддерживает распределенные хранилища.
• Минимальная задержка, высокая производительность.
• Идеальна для финансовых и IoT-приложений.
🔗 Ссылочка на доку (https://github.com/OpenHFT/Chronicle-Map)
👩💻
@javaquiz
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.
• Поддерживает распределенные хранилища.
• Минимальная задержка, высокая производительность.
• Идеальна для финансовых и IoT-приложений.
🔗 Ссылочка на доку (https://github.com/OpenHFT/Chronicle-Map)
👩💻
@javaquiz
⚙️ Collections.reverse()
В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.
👩💻
@javaquiz
В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.
👩💻
@javaquiz
⚙️ Stream.collect() с Collector.of()
В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.
👩💻
@javaquiz
В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.
👩💻
@javaquiz
⚙️ Collectors.toMap()
В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.
👩💻
@javaquiz
В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.
👩💻
@javaquiz
⚙️ String.replaceAll()
В Java метод String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк.
👩💻
@javaquiz
В Java метод String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк.
👩💻
@javaquiz
#вопросы_с_собеседований
Что будет, если в Map положить два значения с одинаковым ключом?
Если в Map положить два значения с одинаковым ключом, то произойдет следующее:
— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.
— Map может содержать только уникальные ключи. При попытке добавить дублирующийся ключ, старое связанное значение будет заменено новым.
— Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ.
Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.
👩💻
@javaquiz
Что будет, если в Map положить два значения с одинаковым ключом?
Если в Map положить два значения с одинаковым ключом, то произойдет следующее:
— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.
— Map может содержать только уникальные ключи. При попытке добавить дублирующийся ключ, старое связанное значение будет заменено новым.
— Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ.
Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.
👩💻
@javaquiz
❓ Вопрос на собеседовании
Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?
Ответ ⬇️
ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры.
Пример использования ⚙️
import java.util.concurrent.ConcurrentHashMap;
public class Main {
public static void main(String[] args) {
ConcurrentHashMap map = new ConcurrentHashMap();
map.put("Alice", 1);
map.put("Bob", 2);
map.computeIfPresent("Alice", (key, val) -> val + 1);
System.out.println(map); // {Alice=2, Bob=2}
}
}
👩💻
@javaquiz
Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?
Ответ ⬇️
ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры.
Пример использования ⚙️
import java.util.concurrent.ConcurrentHashMap;
public class Main {
public static void main(String[] args) {
ConcurrentHashMap map = new ConcurrentHashMap();
map.put("Alice", 1);
map.put("Bob", 2);
map.computeIfPresent("Alice", (key, val) -> val + 1);
System.out.println(map); // {Alice=2, Bob=2}
}
}
👩💻
@javaquiz
Приглашаем на открытый урок.
🗓 23 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик».
На уроке разберем:
main.Thread и Runnable.join и как дождаться завершения запущенных потоков.🔗 Ссылка на регистрацию: https://vk.cc/cZzB0l
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Приглашаем на открытый урок.
🗓 22 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework».
На занятии мы разберем:
Кому будет интересно:
Урок будет полезен Java-разработчикам, архитекторам ПО и специалистам по базам данных, стремящимся оптимизировать доступ к данным.
🔗 Ссылка на регистрацию: https://vk.cc/cZzAYY
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM