Что делает метод map(Object::toString) в Java Stream API?

«Что делает метод map(Object::toString) в Java Stream API?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод map(Object::toString) преобразует каждый элемент потока в его строковое представление, вызывая метод toString().

Пример:

List<Integer> numbers = Arrays.asList(1, 2, 3);
List<String> strings = numbers.stream()
    .map(Object::toString)
    .collect(Collectors.toList());
// Результат: ["1", "2", "3"]

Ключевые моменты:

  • Object::toString — это ссылка на метод, эквивалентная лямбда-выражению x -> x.toString().
  • Применим к любым объектам, у которых определен метод toString() (есть у всех объектов, наследуемый от Object).
  • Возвращает новый поток (Stream<String>), не изменяя исходную коллекцию.