Sorted set
SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.
SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.
В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
donat | буст | вопросики | магазин | тех.поддержка | примеры кода
📱 krosovok programs
SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.
SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.
В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
🔗 полезные ссылки:
donat | буст | вопросики | магазин | тех.поддержка | примеры кода
Please open Telegram to view this post
VIEW IN TELEGRAM
напиши какой формат вам нравится, и какой вы бы хотели видеть ❓
⭐️ планируется кое что интересное, и если будут интересные предложение в комментариях, добавлю и их
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроено под капотом LinkedHashMap?
LinkedHashMap — это реализация интерфейса Map, которая сохраняет порядок добавления элементов. В отличие от обычного HashMap, где элементы могут быть расположены случайным образом, LinkedHashMap поддерживает последовательность вставки или порядок доступа. Это достигается благодаря использованию двусвязного списка, который связывает все элементы карты.
Основой LinkedHashMap является та же хэш-таблица, что и в HashMap, но с дополнительной структурой двусвязного списка для сохранения порядка элементов:
⭐️ Каждая запись (entry) в LinkedHashMap содержит ссылки на предыдущий и следующий элементы. Это позволяет поддерживать порядок добавления или порядок последнего доступа.
⭐️ Сначала выполняется хэширование ключей для быстрой вставки и поиска, как в HashMap, а уже потом запись связывается в список.
⭐️ Вставка: Добавление новых элементов выполняется за O(1), поскольку элементы добавляются в конец двусвязного списка, а хэш-таблица используется для поиска свободной позиции.
⭐️ Удаление: Удаление элемента требует корректировки ссылок в двусвязном списке, что увеличивает накладные расходы, но также выполняется за O(1).
⭐️ Поиск: Операция поиска по ключу происходит с использованием хэш-таблицы и выполняется за O(1), как и в HashMap.
⭐️ Множественные коллизии: в худшем случае все операции будут выполняться с O(n), если допустить множественные коллизии.
Каждая запись LinkedHashMap содержит дополнительные ссылки на предыдущий и следующий элементы, что увеличивает потребление памяти по сравнению с HashMap. Однако это оправдано, если важен порядок элементов.
- Сохранение порядка вставки: LinkedHashMap гарантирует, что элементы будут извлекаться в том порядке, в котором они были добавлены.
- Порядок доступа: Можно настроить LinkedHashMap на удаление самых старых элементов, что полезно для кэшей, где используется политика LRU (Least Recently Used).
- Предсказуемость итераций: В отличие от HashMap, где порядок элементов может изменяться, LinkedHashMap всегда сохраняет стабильный порядок.
- Более высокое потребление памяти: Дополнительные ссылки на предыдущие и следующие элементы увеличивают память на каждую запись.
- Скорость: LinkedHashMap немного медленнее HashMap из-за поддержания порядка элементов.
краткая информация | Пример
📱 krosovok programs
LinkedHashMap — это реализация интерфейса Map, которая сохраняет порядок добавления элементов. В отличие от обычного HashMap, где элементы могут быть расположены случайным образом, LinkedHashMap поддерживает последовательность вставки или порядок доступа. Это достигается благодаря использованию двусвязного списка, который связывает все элементы карты.
⚙️ Структура LinkedHashMap
Основой LinkedHashMap является та же хэш-таблица, что и в HashMap, но с дополнительной структурой двусвязного списка для сохранения порядка элементов:
🔜 Производительность
🧠 Использование памяти
Каждая запись LinkedHashMap содержит дополнительные ссылки на предыдущий и следующий элементы, что увеличивает потребление памяти по сравнению с HashMap. Однако это оправдано, если важен порядок элементов.
💕 Преимущества:
- Сохранение порядка вставки: LinkedHashMap гарантирует, что элементы будут извлекаться в том порядке, в котором они были добавлены.
- Порядок доступа: Можно настроить LinkedHashMap на удаление самых старых элементов, что полезно для кэшей, где используется политика LRU (Least Recently Used).
- Предсказуемость итераций: В отличие от HashMap, где порядок элементов может изменяться, LinkedHashMap всегда сохраняет стабильный порядок.
🚫 Недостатки:
- Более высокое потребление памяти: Дополнительные ссылки на предыдущие и следующие элементы увеличивают память на каждую запись.
- Скорость: LinkedHashMap немного медленнее HashMap из-за поддержания порядка элементов.
краткая информация | Пример
Please open Telegram to view this post
VIEW IN TELEGRAM
скоро сведут еще 1 фит с соником, ждем, слушаем пока что это
https://t.me/krosovok_on_the_bit/193
https://t.me/krosovok_on_the_bit/193
Telegram
krosov_ok👟
свага имеется?
DoubleAdder
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
⭐️ Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
Please open Telegram to view this post
VIEW IN TELEGRAM
как по мне хорошо получилось, осталось свести только
оценку в коменты давайте
https://t.me/krosovok_on_the_bit/200
оценку в коменты давайте
https://t.me/krosovok_on_the_bit/200
Telegram
krosov_ok👟
Контейнер Optional
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
📱 krosovok programs
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
Please open Telegram to view this post
VIEW IN TELEGRAM
10 2 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
krosovok programs
52к символов в школ проекте - ☠️ ☠️ ⚰️ 52к символов в IntelliJ IDEA - 🌹 🌷 😘
сегодня сдача, завтра посты в обычном режиме
1
Тип Optional
Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).
Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение «Default Value».
Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.
📱 krosovok programs
Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).
Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение «Default Value».
Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
3 4 3 2 1
послушал я новый альбом фараона (10:13), ну что сказать, 50% альбома грязный звук, в плане сведения, очень странный альбом
много треков где он на продакшене, как эксперимент не плохо,
треки звучат живо, но..
везде звучание отличается, порядок не совпадает, будто набор песен собрали и все, нет прогрессии в общем
омега,
добро пожаловать на луну,
бензобак,
чисто символически
пост не по теме, буду разнообразить контент и музыки и джавы любимой конечно же
разборы альбомчиков и всё такое будут под тегом
#мнениекросовка
много треков где он на продакшене, как эксперимент не плохо,
треки звучат живо, но..
везде звучание отличается, порядок не совпадает, будто набор песен собрали и все, нет прогрессии в общем
⭐️ мой топ с альбома:
омега,
добро пожаловать на луну,
бензобак,
чисто символически
разборы альбомчиков и всё такое будут под тегом
#мнениекросовка
Please open Telegram to view this post
VIEW IN TELEGRAM
часто задаваемые вопросы, которые мне задают
🔗 открыть с помощью telegra.ph
🔗 открыть с помощью гугл документа
🔗 открыть с помощью telegra.ph
🔗 открыть с помощью гугл документа
🔗 https://hub.spigotmc.org/javadocs/bukkit/
Список вопросов - ответов будет пополнятся, формат ответов сделаю получше, чем ссылки скринов через телеграф
----
сделано, чтоб каждому не пересылать одно и тоже, а просто кидать ссылку, спасибо за понимание
⭐️ как преобразовать gradle проект в maven?
⭐️ не работает кнопка запуска
⭐️ частые вопросы, по типу как понять что за setFoodLevel
Bukkit API Packages
Список вопросов - ответов будет пополнятся, формат ответов сделаю получше, чем ссылки скринов через телеграф
----
сделано, чтоб каждому не пересылать одно и тоже, а просто кидать ссылку, спасибо за понимание
🔞 По всем вопросам —> @krosovokHelpBot
Please open Telegram to view this post
VIEW IN TELEGRAM
Selector
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
📱 krosovok programs
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM