Вот список Вопросов для собеседования по Java 8, которые задавали в интервью, а также публикую ответы для лучшей подготовки.

Как найти имя сотрудника, начинающееся с буквы А, с помощью stream API

List<Employee> employees = ...; // Your list of employees

List<Employee> employeesStartingWithA = employees.stream()
    .filter(e -> e.getName().startsWith("A"))
    .collect(Collectors.toList());

Объединить два Employee ArrayList и отсортировать по возрасту с помощью потокового API java8

List<Employee> list1 = ...; // Your first list
List<Employee> list2 = ...; // Your second list

List<Employee> mergedAndSorted = Stream.concat(list1.stream(), list2.stream())
    .sorted(Comparator.comparingInt(Employee::getAge))
    .collect(Collectors.toList());

Найдите четные числа из ArrayList и найдите сумму всех чисел, используя потоковый API Java 8.

List<Integer> numbers = Arrays.asList(1,2,3,4,5,6); // Your list of numbers

int sumOfEvenNumbers = numbers.stream()
    .filter(n -> n % 2 == 0)
    .mapToInt(Integer::intValue)
    .sum();

Сортировка сотрудников по имени и зарплате с помощью java 8 stream API

public class Employee {
    String firstName;
    int age;
}

        List<Employee> employees = new ArrayList<>();
        Employee e1 = new Employee("Ajay",35);
        Employee e2 = new Employee("Vijay",5);
        Employee e3 = new Employee("Zack",30);
        Employee e4 = new Employee("David",51);


List<Employee> sortedEmployees = employees.stream()
    .sorted(Comparator.comparing(Employee::getName).thenComparing(Employee::getSalary))
    .collect(Collectors.toList());

Сортировка сотрудников по полу и возрасту старше 30 лет с помощью Java 8 stream API

List<Employee> employees = ...; // Your list of employees

List<Employee> sortedEmployees = employees.stream()
    .filter(e -> e.getAge() > 30)
    .sorted(Comparator.comparing(Employee::getGender))
    .collect(Collectors.toList());

Каковы операции промежуточного и конечного потока в потоке java 8

Промежуточные операции – это операции, которые сами по себе не дают конечный результат, а преобразуют или фильтруют элементы потока и возвращают новый поток, с которым можно работать дальше. Некоторые примеры промежуточных операций:

  • map(): преобразует каждый элемент потока с помощью заданной функции.
  • filter(): сохраняет только те элементы потока, которые удовлетворяют заданному условию.
  • distinct(): Удаляет дубликаты из потока.
  • sorted(): сортирует элементы потока в заданном порядке.
  • limit(): усекает поток до указанного максимального размера.
  • skip(): Пропускает указанное количество элементов с начала потока.

Терминальные операции – это операции, которые приводят к конечному результату или побочному эффекту и завершают обработку потока. После применения терминальной операции к потоку этот поток нельзя использовать снова. Некоторые примеры терминальных операций:

  • forEach(): выполняет заданное действие для каждого элемента потока.
  • toArray(): собирает элементы потока в массив.
  • reduce(): объединяет элементы потока с помощью заданной функции и возвращает один результат.
  • collect(): собирает элементы потока в коллекцию или другую структуру данных.
  • count(): подсчитывает количество элементов в потоке.
  • min(), max(): возвращает минимальный или максимальный элемент потока на основе заданного порядка.

Какие типы потоков в java 8

  1. Stream‹T›: это наиболее распространенный тип потока, представляющий поток объектов типа T. Вы можете создать Stream‹T› из коллекции или массива, используя методы stream() или Arrays.stream() соответственно.
  2. IntStream, LongStream, DoubleStream: это специализированные потоки, содержащие примитивные значения типов int, long и double соответственно. Эти специализированные потоки имеют дополнительные методы, оптимизированные для работы с примитивными значениями, такими как sum(), average() и range().
  3. Поток‹T[]›: это поток массивов типа T. Вы можете создать поток‹T[]›, вызвав метод Arrays.stream() для массива типа T[].
  4. Stream.Builder‹T›: это класс построителя, который можно использовать для создания Stream‹T› путем добавления элементов по одному. Вы можете создать Stream.Builder‹T›, используя метод Stream.builder().

В поисках содержания интервью с разработчиком Java здесь вы можете найти 1000 вопросов о Springboot, Microservice и Java.







найти другие мои полезные статьи на интервью Java Developer

Как я получил более 10 писем с предложениями в качестве Java-разработчика за 3 месяца.

Как я подробно изучил Java, готовясь к техническим собеседованиям по Java

17 вопросов для собеседования с Java-разработчиком, серия 9 (опытные кандидаты от 0 до 6 лет)

13 новых вопросов для интервью с разработчиками Java, серия 6 (микросервисы и Java-кодирование)

250+ книг с вопросами для интервью по Java/SpringBoot/Microservice (анонс моей новой книги для Java-разработчика)

Вопросы на собеседовании по Microservice для разработчиков Java Backend, серия-3

Вопросы на собеседовании по Microservice для Backend Developers Series-2 (CIRCUIT-BREAKER)

Вопросы на собеседовании по микросервисам для Backend Developers серия-1

Спасибо за прочтение

  • 👏 Пожалуйста, хлопайте в историю и подписывайтесь на меня 👉
  • 📰 Подробнее читайте в моем Медиуме (30 историй об интервью с Java-разработчиком)
  • 🔔 Следуйте за мной: LinkedIn | Твиттер