Sobes.tech
Back to questions
Senior
5

//список автомобильных номеров , номера всегда стандартные одного типа // нужно вывести каждый номер по отдельности в консоль // затем сделать карту номер - его цифры (пример A123BC:123) где key это A123BC а value это 123 //var autoNumbers = List.of(List.of("A123BC", "B421FT"), List.of("O543EC","B421FT", "I2220A"));

Companies where asked
Позитив Технолоджис

Answer from AI

sobes.tech AI

Для решения задачи на Java можно использовать следующий подход:

  1. Пройтись по вложенным спискам и вывести каждый номер в консоль.
  2. Создать Map, где ключ — номер автомобиля, а значение — строка с цифрами из номера.

Пример кода:

import java.util.*;
import java.util.stream.*;

public class AutoNumbers {
    public static void main(String[] args) {
        var autoNumbers = List.of(
            List.of("A123BC", "B421FT"),
            List.of("O543EC", "B421FT", "I2220A")
        );

        // Выводим каждый номер в консоль
        autoNumbers.stream()
            .flatMap(Collection::stream)
            .forEach(System.out::println);

        // Создаем карту номер -> цифры
        Map<String, String> numberToDigits = autoNumbers.stream()
            .flatMap(Collection::stream)
            .distinct() // чтобы не дублировать ключи
            .collect(Collectors.toMap(
                number -> number,
                number -> number.replaceAll("[^0-9]", "")
            ));

        // Пример вывода карты
        numberToDigits.forEach((key, value) -> System.out.println(key + ":" + value));
    }
}

В этом примере:

  • Используется flatMap для объединения вложенных списков в один поток.
  • Метод replaceAll("[^0-9]", "") извлекает только цифры из строки.
  • distinct() убирает повторяющиеся номера, чтобы ключи в Map были уникальными.