Java Interview Tasks
4.53K subscribers
213 photos
1 video
1 file
140 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks
Download Telegram
🔍 Ответ на задачу про работу с HashMap и null 🗺

✍️ HashMap в Java разрешает использовать ключ null.
Правильный ответ: 5

Если задача была полезна, ставь лайк 👍, подписывайся и пиши свое решение или вопросы в комментариях! 💬

#java #hashmap #null #map #java_tasks #java_interview_tasks
👍10🔥93
🔍 Ответ на задачу про преобразование List в Map в Java

Давайте разберём, что произойдёт в этом коде:

List<String> list = Arrays.asList("one", "two", "three", "four");
Map<Integer, String> size2Str = list.stream()
.collect(Collectors.toMap(String::length, Function.identity()));
System.out.println(size2Str.size());

🔸 Мы превращаем список строк в Map, где ключ — длина строки, а значение — сама строка.

📌 Важно: toMap по умолчанию выбрасывает исключение, если встречает дубликаты ключей (а у нас ключи — длины строк).

При первом попадании строки длины 3 ("one") всё ок. Но когда попадётся "two" — возникнет конфликт ключей!

❗️ Результат: Код выбросит исключение типа IllegalStateException: Duplicate key
То есть ничего не напечатает, а программа упадёт с ошибкой.

Если хотите избежать ошибки — добавьте в toMap третий аргумент (как решать конфликт):

.collect(Collectors.toMap(String::length, Function.identity(), (s1, s2) -> s1))
// Этот вариант оставит первое значение.


🔔 Было полезно? Ставь лайк, подписывайся и пиши свои вопросы или комменты!
#java #stream #map #interview #toMap #java_interview_tasks
👍227🔥41
🔍 Ответ на задачу про TreeMap: Любит ли она null-ключи? 🗺

Коллекции в Java по-разному относятся к null. Если HashMap его терпит, то что скажет TreeMap?

Объяснение:
Многие считают, что TreeMap категорически запрещает null-ключи. На самом деле, TreeMap — это просто дерево, которое полагается на механизм сравнения.

Проблема не в самой TreeMap, а в компараторе. Если вы используете дефолтный компаратор (Natural Ordering), он попытается вызвать compareTo() у ключа. Вызов метода у null неизбежно приведет к NullPointerException.

Однако, если при создании TreeMap передать ей кастомный компаратор, который умеет обрабатывать null (например, Comparator.nullsFirst), то TreeMap будет прекрасно работать с null-ключами.

Вывод:
TreeMap сама по себе НЕ запрещает null-ключи. Ошибка возникает только при использовании компаратора, не поддерживающего null (что происходит по умолчанию).

⚡️ Не перепутайте:
• HashMap: разрешает один null-ключ.
• Hashtable: запрещает null-ключи и значения на уровне методов put/get.
• TreeMap: позволяет использовать null-ключи, ЕСЛИ предоставлен соответствующий компаратор.

#java #collections #treemap #null #map #интервью #java_interview_tasks
🔥5👍21👎1