文件循环->流循环->添加到现有集合

时间:2019-04-12 00:43:29

标签: java loops java-stream

我一直在审查以下question,但仍然有些困惑。如何遍历文件,遍历每个文件的内容,仅将所有文件中的不同值添加到一个列表中? Should I use a set?

  

getSourceFiles返回路径的LinkedHashMap,然后将其强制转换为File对象

    public static void main(String[] args) throws IOException {

mapSwift = getSourceFiles(PATH_SWIFT, swiftFileName);
linkedHashSet = new LinkedHashSet();
mapSwift.forEach((k,v)-> {
        File fileName = new File(v.toString());
        try (Stream<String> stream = Files.lines(Paths.get(String.valueOf(fileName)))) {
            list = stream
                    .filter(line -> line.startsWith(":97A::SAFE//"))
                    .map(String::toUpperCase)
                    .distinct()
                    .collect(Collectors.toList());
        } catch (IOException e) {
            e.printStackTrace();
        }

    linkedHashSet.add(list);

});


    System.out.println("Done");

}
//public static LinkedHashMap<?, ?> getSourceFiles(Path dir, String strFilename)

预期产量

File A | File B | File C
Oranges Apples Bananas
Apples  Apples Oranges

我希望所得的Array或Set仅具有来自所有文件的唯一值。在上面的示例中,结尾数据结构将仅包含3个元素,Oranges, Apples, Bananas

0 个答案:

没有答案