Преобразование List<T> в массив T[] с гарантией типа
Создайте массив нужного runtime-типа через Array.newInstance(clazz, size), затем передайте его List.toArray. Нельзя просто привести Object[] к T[] с ожидаемым типом String[].
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Создайте массив нужного runtime-типа через Array.newInstance(clazz, size), затем передайте его List.toArray. Нельзя просто привести Object[] к T[] с ожидаемым типом String[].
Читать ответПостепенно уменьшайте длину префикса первой строки, сравнивая его с каждой следующей. Сортировать массив или создавать промежуточные подстроки на каждом шаге не требуется.
Читать ответПроблема в общем изменяемом поле mdDigest: потоки могут заменить его между созданием и использованием, а MessageDigest хранит состояние. Сделайте digest локальной переменной метода.
Читать ответПерегрузка конструктора означает несколько конструкторов с разными списками параметров. Общую инициализацию удобно сосредоточить в одном и делегировать ему через this(...).
Читать ответОдного обратного порядка мониторов недостаточно для гарантии: один поток может успеть захватить оба. Барьер после первого захвата заставит оба потока удерживать по одному монитору.
Читать ответВ рекурсивном бинарном поиске средний элемент делит текущий диапазон пополам. Если target меньше него, ищите слева, иначе справа; при пустом диапазоне верните −1.
Читать ответВозьмите первую строку как образец и сокращайте длину совпавшего префикса после сравнения с каждой следующей строкой. При нулевой длине можно завершить поиск.
Читать ответВ исправленном синтаксически фрагменте contains(person) должен вернуть true: тот же неизменённый объект только что добавлен в HashSet. Показанный код сам по себе не объясняет false.
Читать ответПодсчитайте частоты через группировку в TreeMap, затем выведите только значения со счётчиком больше одного. TreeMap задаст порядок по возрастанию чисел.
Читать ответСформируйте Fizz и Buzz по делимости на 3 и 5, объедините их и бросьте IllegalArgumentException, если строка пуста. Для массива байтов задайте UTF-8 явно.
Читать ответПоле computers не инициализировано, поэтому первый sellComputer() выбросит NullPointerException на size(). Метод buyComputers пуст и не пополняет запас; Runner покупку товара до продажи не выполняет.
Читать ответПоддерживайте скользящее окно без повторов и последние позиции символов. При повторе сдвигайте левую границу за предыдущее вхождение, но никогда не двигайте её назад.
Читать ответ