Назад к вопросам
Senior
4
```java import java.util.*; import java.lang.*; import java.io.*; class Codechef { public static void main (String[] args) throws java.lang.Exception { var autoNumbers = List.of(List.of("A123BC", "B421FT"), List.of("O543EC","B421FT", "I222OA")); autoNumbers.stream().flatMap(Collection::stream).flatEach(System.out/System.out.println()); Map<String, String> numberMap = autoNumbers.stream().flatMap(Collection::stream).collect(Collectors.toMap( n -> n, n -> n.replaceAll("[^0-9]", ""))); System.out.println(numberMap); } } ```
Компании, где спрашивали
ЦифровыеПривычки
Ответ от нейросети
sobes.tech AI
В представленном коде есть несколько ошибок и опечаток:
- Метод
flatEachне существует. Вероятно, имелось в видуforEach. - В
forEachпередан некорректный аргументSystem.out/System.out.println(). Правильно использоватьSystem.out::println.
Исправленный вариант вывода всех номеров:
autoNumbers.stream()
.flatMap(Collection::stream)
.forEach(System.out::println);
Далее, создание numberMap корректно собирает Map, где ключ — номер авто, а значение — только цифры из номера.
Полный исправленный код:
import java.util.*;
import java.util.stream.Collectors;
class Codechef {
public static void main(String[] args) {
var autoNumbers = List.of(
List.of("A123BC", "B421FT"),
List.of("O543EC", "B421FT", "I222OA")
);
autoNumbers.stream()
.flatMap(Collection::stream)
.forEach(System.out::println);
Map<String, String> numberMap = autoNumbers.stream()
.flatMap(Collection::stream)
.collect(Collectors.toMap(
n -> n,
n -> n.replaceAll("[^0-9]", ""),
(existing, replacement) -> existing // при дубликатах оставляем первый
));
System.out.println(numberMap);
}
}
Обратите внимание, что в исходных данных есть дубликат "B421FT", поэтому при сборе Map нужно обработать коллизии ключей, например, оставляя первое значение.