使用 Commons 或 Guava 将文本文件放入 Java Set<String>

问题描述 投票:0回答:5
我想将文件中的每一行加载到 HashSet 集合中。有没有简单的方法可以做到这一点?

java text-files guava hashset
5个回答
14
投票
怎么样:

Sets.newHashSet(Files.readLines(file, charSet));

(使用番石榴)。

参考资料:

  • Files.readLines()
  • Sets.newHashSet()

11
投票
你可以做

Set<String> lines = new HashSet<String>(FileUtils.readLines(new File("foo.txt")));

使用 Apache Commons

FileUtils 类和 readlines 方法。


2
投票

Multiset 可以存储重复的字符串。 (添加订购)

Multiset<String> set = LinkedHashMultiset.create();
    

0
投票
使用

Apache Commons IO,您有 readLines

,它会返回 List
。然后,您可以将返回列表中的所有元素添加到您的 
HashSet
 中(注意:
List
Set
 之间的类型兼容性,并丢失重复行)。


0
投票
如果现在有人来到这里,不需要Commons或Guava,只需

try (Stream lines = Files.lines(p)) { return (Set<String>) lines.collect(Collectors.toSet()); }
    
© www.soinside.com 2019 - 2024. All rights reserved.