Интерфейс Comparable
Интерфейс Comparable используется для поддержки сортировки элементов коллекции.
Он содержит единственный метод compareTo, который сравнивает текущий объект с переданным объектом. Метод возвращает значение меньше нуля, если текущий объект меньше переданного, больше нуля если текущий объект больше, и ноль если объекты равны.
Чтобы ваш класс стал сравниваемым, он должен реализовывать интерфейс Comparable и переопределить метод compareTo.
Реализация Comparable позволяет сортировать экземпляры класса с помощью методов Collections.sort и Arrays.sort. Также она используется в TreeSet и TreeMap для корректного упорядочивания элементов.
В примере реализован метод compareTo, который сравнивает средний балл текущего и переданного студента.
После создания списка студентов мы отсортировали его методом Collections.sort. Благодаря Comparable студенты расположились в порядке возрастания среднего балла.
#код
Интерфейс Comparable используется для поддержки сортировки элементов коллекции.
Он содержит единственный метод compareTo, который сравнивает текущий объект с переданным объектом. Метод возвращает значение меньше нуля, если текущий объект меньше переданного, больше нуля если текущий объект больше, и ноль если объекты равны.
Чтобы ваш класс стал сравниваемым, он должен реализовывать интерфейс Comparable и переопределить метод compareTo.
Реализация Comparable позволяет сортировать экземпляры класса с помощью методов Collections.sort и Arrays.sort. Также она используется в TreeSet и TreeMap для корректного упорядочивания элементов.
В примере реализован метод compareTo, который сравнивает средний балл текущего и переданного студента.
После создания списка студентов мы отсортировали его методом Collections.sort. Благодаря Comparable студенты расположились в порядке возрастания среднего балла.
#код
👍17❤1
В каких случаях разумно использовать массив, а не ArrayList?
Использование обычных массивов вместо ArrayList имеет смысл в следующих ситуациях:
— Нужен предсказуемый и строгий контроль размера массива. Массивы имеют фиксированный размер, в отличие от ArrayList.
— Требуется максимальная производительность при работе с примитивными типами данных (int, double и т. д.). Доступ к элементам массива быстрее, чем в ArrayList.
— Нужно создать структуру данных, которая должна быть неизменяемой.
— Требуется тесная интеграция с существующим кодом на основе обычных массивов. Переход на ArrayList может потребовать значительный рефакторинг.
— Не нужны динамические функции ArrayList, такие как автоматическое изменение размера, методы вставки/удаления и т. д.
— Ограничения на использование дополнительной памяти. Массивы компактнее ArrayList за счет фиксированного размера.
#вопросы_с_собеседований
Использование обычных массивов вместо ArrayList имеет смысл в следующих ситуациях:
— Нужен предсказуемый и строгий контроль размера массива. Массивы имеют фиксированный размер, в отличие от ArrayList.
— Требуется максимальная производительность при работе с примитивными типами данных (int, double и т. д.). Доступ к элементам массива быстрее, чем в ArrayList.
— Нужно создать структуру данных, которая должна быть неизменяемой.
— Требуется тесная интеграция с существующим кодом на основе обычных массивов. Переход на ArrayList может потребовать значительный рефакторинг.
— Не нужны динамические функции ArrayList, такие как автоматическое изменение размера, методы вставки/удаления и т. д.
— Ограничения на использование дополнительной памяти. Массивы компактнее ArrayList за счет фиксированного размера.
#вопросы_с_собеседований
👍19
Зубчатый массив в Java
Зубчатый массив (BitSet) — это специальная структура данных для эффективного хранения и манипулирования наборами битов.
Представляет собой массив битов, который увеличивается динамически по мере добавления элементов. Занимает меньше памяти, чем обычные структуры данных для хранения булевых значений.
Позволяет выполнять операции над битами: установка, сброс, инверсия, логические операции.
Зубчатый массив полезен при решении задач: поиск в множествах, хранение состояний и флагов, оптимизация расхода памяти и в целом при необходимости эффективно хранить и манипулировать большим количеством булевых значений.
#код
Зубчатый массив (BitSet) — это специальная структура данных для эффективного хранения и манипулирования наборами битов.
Представляет собой массив битов, который увеличивается динамически по мере добавления элементов. Занимает меньше памяти, чем обычные структуры данных для хранения булевых значений.
Позволяет выполнять операции над битами: установка, сброс, инверсия, логические операции.
Зубчатый массив полезен при решении задач: поиск в множествах, хранение состояний и флагов, оптимизация расхода памяти и в целом при необходимости эффективно хранить и манипулировать большим количеством булевых значений.
#код
👍12
Вышла Java 21
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.
Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Подробный обзор по ссылке.
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.
Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Подробный обзор по ссылке.
👍20🤔3👏2😁1
Что вы считаете самой большой своей неудачей за всю карьеру?
#интерактив
#интерактив
Начать курс «Алгоритмы и структуры данных» с вводной части можно уже сегодня бесплатно
Курс для разработчиков, которые хотят подготовиться к собеседованию в технологическую компанию или продвинуться по карьерной лестнице.
НАЧАТЬ С ДЕМО-ДОСТУПА
▪️ бессрочный доступ
▪️ 47 видеолекций
▪️ 150 практических заданий
▪️ бессрочная поддержка в чате студентов
▪️развернутая обратная связь по всем домашним заданиям
🔹Подробная программа – https://proglib.io/w/5af3212b
Переходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
Курс для разработчиков, которые хотят подготовиться к собеседованию в технологическую компанию или продвинуться по карьерной лестнице.
НАЧАТЬ С ДЕМО-ДОСТУПА
▪️ бессрочный доступ
▪️ 47 видеолекций
▪️ 150 практических заданий
▪️ бессрочная поддержка в чате студентов
▪️развернутая обратная связь по всем домашним заданиям
🔹Подробная программа – https://proglib.io/w/5af3212b
Переходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
👍6
Queue
Queue — это интерфейс в Java Collections Framework, который представляет собой коллекцию элементов, организованных в соответствии с принципом FIFO (First In, First Out). Это означает, что элементы добавляются в конец очереди и извлекаются из начала очереди.
Queue используется в ситуациях, когда необходимо управлять порядком обработки элементов.
В этом примере мы создаем очередь строк и добавляем в нее три элемента. Затем мы извлекаем элементы из очереди с помощью метода poll(), который возвращает и удаляет элемент из начала очереди. Элементы извлекаются в том же порядке, в каком и добавляются.
#код
Queue — это интерфейс в Java Collections Framework, который представляет собой коллекцию элементов, организованных в соответствии с принципом FIFO (First In, First Out). Это означает, что элементы добавляются в конец очереди и извлекаются из начала очереди.
Queue используется в ситуациях, когда необходимо управлять порядком обработки элементов.
В этом примере мы создаем очередь строк и добавляем в нее три элемента. Затем мы извлекаем элементы из очереди с помощью метода poll(), который возвращает и удаляет элемент из начала очереди. Элементы извлекаются в том же порядке, в каком и добавляются.
#код
👍13❤1
Очередной #дайджест по Java:
☕ Добавление отзывов с фотографиями в S3 с помощью AWS SDK Java
Добавление отзывов пользователями с возможностью прикрепить фотографии, загрузить их в облако и получить ссылку файл из S3, а именно Yandex Object Storage, используя AWS SDK Java.
☕ OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.
☕ Решаем задачу о секретном рукопожатии на Java
Интересная задача на знание Map и работу с пользовательским вводом, а также двоичное счисление.
☕ Продвинутый телеграмм бот на Java (Spring, postgres и free deploy)
Гайд по созданию полноценного бота с привязкой к базе данных.
☕ Добавление отзывов с фотографиями в S3 с помощью AWS SDK Java
Добавление отзывов пользователями с возможностью прикрепить фотографии, загрузить их в облако и получить ссылку файл из S3, а именно Yandex Object Storage, используя AWS SDK Java.
☕ OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.
☕ Решаем задачу о секретном рукопожатии на Java
Интересная задача на знание Map и работу с пользовательским вводом, а также двоичное счисление.
☕ Продвинутый телеграмм бот на Java (Spring, postgres и free deploy)
Гайд по созданию полноценного бота с привязкой к базе данных.
🔥5❤2