Cómo ver un mapa <Ruta, List <Path >> a un List <String> contiene la ruta absoluta como cadena?

deHaar:

Mi proyecto actual está en la necesidad de un método que convierte una Map<Path, List<Path>>a una List<String>que contiene las rutas absolutas. El Mapcontiene Paths de archivos agrupados por el directorio que los contiene.
Sin embargo, tengo que escribir todas las rutas absolutas de los archivos encontrados en un archivo de volcado, es por eso que necesito Strings en lugar de Paths.
Por el momento, lo hago con el siguiente método que utiliza anidados forEachpide a la Mapy sus valores:

public List<String> getAllAbsolutePaths(Map<Path, List<Path>> filesInPath) {
    List<String> absolutePaths = new ArrayList<String>();

    filesInPath.forEach((directory, files) -> {
        files.forEach(file -> absolutePaths.add(file.toAbsolutePath().toString()));
    });

    return absolutePaths;
}

Esto funciona, pero yo sólo quiero saber una forma (n incluso más) moderna hacerlo enviando la keySeto el valuesde la Map.
El problema que tengo es que yo no sé cómo aplicar la file.toAbsolutePath().toString()en la corriente. Sólo soy capaz de cobrar todos los Paths como List<Path>:

List<Path> filePaths = sqlFilesInDirectories.values().stream()
                            .flatMap(List::stream)
                            .map(Path::toAbsolutePath)
                            .collect(Collectors.toList());

¿Cómo puedo modificar esta declaración (o escribir uno totalmente diferente) que me da la deseada List<String>, con el resultado de Path.toAbsolutePath().toString()?

Andrónico:

Ya casi ha terminado, sólo tiene que llamar toStringen la lista de caminos resultante:

List<String> strings = filePaths.stream()
    .map(Object::toString)
    .collect(Collectors.toList());

O directamente en el torrente:

List<String> filePaths = sqlFilesInDirectories.values().stream()
                        .flatMap(List::stream)
                        .map(Path::toAbsolutePath)
                        .map(Object::toString)
                        .collect(Collectors.toList());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=203541&siteId=1
Recomendado
Clasificación