1. Как сравниваются элементы в коллекциях Java, если не определен интерфейс Comparable? Предположите, как можно сравнивать объекты, например, используя хэш-коды, и объясните, почему хэш-коды подходят для этой цели.
2. В чем разница между связным списком (LinkedList) и массивом (ArrayList) в Java с точки зрения сложности операций поиска? Объясните, почему поиск в LinkedList имеет сложность O(n), а в ArrayList — O(1) для доступа по индексу. Укажите, какие оптимизации процессора делают ArrayList более эффективным.
3. Какие типы операций существуют в Java Stream API? Разделите их на промежуточные и терминальные, приведите примеры (например, filter, map, forEach, reduce, collect). Объясните,…