文本文件放入 Java Set中使用 Commons 或 Guava

发布于 2024-11-03 11:28:09 字数 51 浏览 6 评论 0原文

我想将文件中的每一行加载到 HashSet 集合中。有没有一种简单的方法可以做到这一点?

I would like to load each line in a file into HashSet collection. Is there a simple way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

栖迟 2024-11-10 11:28:09

怎么样:(

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

使用番石榴)。

参考文献:

How about:

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

(using Guava).

References:

梦里南柯 2024-11-10 11:28:09

您可以

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

使用 Apache Commons FileUtils 类和 读行< /a> 方法。

You can do

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

Using the Apache Commons FileUtils class and the readlines method.

小瓶盖 2024-11-10 11:28:09

如果您的文本包含重复的行,Multiset 可以存储重复的字符串。 (添加订购)

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

Multiset can store duplicated strings, if your text contains duplicated lines. (add ordering)

Multiset<String> set = LinkedHashMultiset.create();
难以启齿的温柔 2024-11-10 11:28:09

有了 Apache Commons IO,你就有了 readLines 返回一个列表。然后,您可以将返回列表中的所有元素添加到 HashSet 中(注意:ListSet 之间的类型兼容性,并丢失重复行)。

With Apache Commons IO you have readLines which returns a List. You can then add all elements from the returned list into your HashSet (beware: type compatibility between List and Set, and loosing duplicated lines).

人疚 2024-11-10 11:28:09

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

        try (Stream lines = Files.lines(p)) {
            return (Set<String>) lines.collect(Collectors.toSet());
        }

If anyone comes to this now, no need for Commons or Guava, just

        try (Stream lines = Files.lines(p)) {
            return (Set<String>) lines.collect(Collectors.toSet());
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文