Как отфильтровать список файлов?

Программа получает доступ к папке и выводит перечень файлов для дальнейшей работы с ними.

Папка resources -- файл x.111.txt
          |------- файл x.112.txt
          |------- файл x.113.txt
          |------- файл y.111.txt

Как правильно написать фильтр, чтоб исключить файл y.111.txt из списка (по символу "y")?

Main.java

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get("resources");
        List<Path> paths = listFiles(path);
        System.out.println(paths);
    }

    public static List<Path> listFiles(Path path) throws IOException {
        List<Path> result;
        try (Stream<Path> walk = Files.walk(path)) {
            result = walk.filter(Files::isRegularFile)
                    .collect(Collectors.toList());
        }
        return result;
    }
}

Ответы (1 шт):

Автор решения: DmitriyD

Если рассматривать простой случай и других условий нет, то добавить условие по фильтру в стриме

result = walk.filter(p -> !p.toString().contains("y") && Files.isRegularFile(p))
                .collect(Collectors.toList());
→ Ссылка