Logo
TGCATALOG
Каталог Подборки Блог
Kotlin | Вопросы собесов

Kotlin | Вопросы собесов

Вопросы для Kotlin-разработчиков с ответами.

Нет оценок
726
29.10.2026
726
29.10.2026
Нет оценок
726
29.10.2026
Безопасный переход через бот
О канале

Вопросы для Kotlin-разработчиков с ответами.

Подписчиков 2,451
Тематика Технологии
Язык Русский
Ссылка t.me/easy_kotlin

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Вопросы на Kotlin-собеседованиях: расширения, корутины, коллекции. С примерами кода и объяснениями для Android и backend.

Последние посты

Kotlin | Вопросы собесов
Kotlin | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Зачем нужен DiffUtil? DiffUtil — это утилита для быстрого обновления списков в RecyclerView. Она сравнивает старый и новый список и находит различия, чтобы обновлять только изменённые элементы, а не весь список. 🚩Проблема без `DiffUtil` Обычное обновление списка без DiffUtil перерисовывает всё, даже если изменился один элемент. adapter.notifyDataSetChanged() // Полностью обновляет список ❌ 🟠Решение с `DiffUtil` DiffUtil находит различия между старым и новым списком и обновляет только изменённые элементы. class MyDiffUtilCallback( private val oldList: List, private val newList: List ) : DiffUtil.Callback() { override fun getOldListSize() = oldList.size override fun getNewListSize() = newList.size override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { return oldList[oldItemPosition].id == newList[newItemPosition].id } override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { return oldList[oldItemPosition] == newList[newItemPosition] // Используем data class (авто `equals()`) } } 🚩Как использовать `DiffUtil` в `RecyclerView.Adapter`? После создания DiffUtil.Callback, вызываем DiffUtil.calculateDiff() и передаём результат в adapter. fun updateList(newList: List) { val diffCallback = MyDiffUtilCallback(userList, newList) val diffResult = DiffUtil.calculateDiff(diffCallback) userList = newList // Обновляем старый список diffResult.dispatchUpdatesTo(this) // Обновляем только изменённые элементы } 🟠`ListAdapter` – ещё проще! Если используем ListAdapter, DiffUtil уже встроен. class UserAdapter : ListAdapter(DIFF_CALLBACK) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_user, parent, false) return UserViewHolder(view) } override fun onBindViewHolder(holder: UserViewHolder, position: Int) { holder.bind(getItem(position)) // `getItem()` уже работает с `ListAdapter` } companion object { private val DIFF_CALLBACK = object : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: User, newItem: User): Boolean = oldItem.id == newItem.id override fun areContentsTheSame(oldItem: User, newItem: User): Boolean = oldItem == newItem } } } Обновление списка в ListAdapter adapter.submitList(newList) // DiffUtil работает внутри 🚀 Ставь 👍 и забирай 📚 Базу знаний
Kotlin | Вопросы собесов
Динамика подписчиков
+0.0% за 30 дней
Текущие
2,451
Месяц назад
2,450
Средний рост
+0 / день
Обновлено
3 часа назад

Отзывы о канале Kotlin | Вопросы собесов

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход