我需要从字符串流中创建一组新的objects(synsets)
,然后将它们收集在HashSet
中。我试图在.forEach
中执行此操作以避免收集字符串,然后为每个字符串创建objects(synsets)
,然后再次将它们收集到一组。
try (Stream<String> reader = Files.lines(Path)) {
reader.filter(s -> !s.startsWith(" "))
.forEach(set.add(new Synset(s)));
}
答案 0 :(得分:3)
您可以使用收集为:
try (Stream<String> reader = Files.lines(Paths.get(<file paths>))) {
Set<Synset> set = reader.filter(s -> !s.startsWith(" "))
.map(Synset::new)
.collect(Collectors.toSet());
}
答案 1 :(得分:3)
如果您已经有一个集合,要将对象添加到其中,我会这样做:
try (Stream<String> reader = Files.lines(Paths.get("path-to-file"))) {
reader.filter(s -> !s.startsWith(" "))
.map(Synset::new)
.forEach(set::add);
}