Придумал задачу, на которой косятся 90% программистов-джуниоров и проявляются кандидаты в миддлы. Она состоит всего из трёх слов: shuffle the array. Удивлен, но работает очень надёжно.
Следующий уровень – группировка объектов по полю А с суммированием поля Б, чтобы получился хэшмап distinct(A) -> sum(В ). Все джуниоры и даже миддлы, кто говорит, что знают Java streams, долго тут тупят, и скорее всего не справляются.
Можно еще попросить найти самую длинную строчку из массива строк в одно lamda-выражение.
Следующий уровень – сравнить два длиннющих списка сложных объектов и показать, что пересекается, а что отличается и в какую сторону. Это очень частая бизнес-задача (у меня, по крайней мере, в интеграции). Разумеется, в условиях ограниченных ресурсов.
Из той же категории – отсортировать (фактически нормализовать) json-ы, имеющие вложенные массивы из сложных структур.
Какие вопросы программисты задают по этим задачам и как решают очень показательно.
