Разделить CSV-файл с помощью лямбда-выражения - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь реорганизовать этот метод для использования лямбда-выражения:

 public List<String> getHttpsLinksFromCsvList() {
        List<String> data = getDataFromCsv();
        List<String> httpLinks = new ArrayList<>();

        data.forEach(System.out::println);
        for (String value : data) {
            String[] arrayString = value.split(COMMA_DELIMITER);

            for (String item : arrayString) {
                if (item.endsWith(".git")) {
                    httpLinks.add(item);
                }
            }
        }

        //httpLinks.forEach(System.out::println);

        return httpLinks;
    }

В идеале я хочу убрать два вложенных цикла for и немного его оптимизировать. Возможно ли это?

1 Ответ

3 голосов
/ 29 марта 2019

Попробуйте это:

List<String> httpLinks = getDataFromCsv().stream()
        .map(value -> value.split(COMMA_DELIMITER))
        .flatMap(Arrays::stream)
        .filter(item -> item.endsWith(".git"))
        .collect(Collectors.toList());
...