【发布时间】:2013-06-04 13:58:18
【问题描述】:
我查找了与我类似的问题,但我正在寻找在 java 内置数据结构的约束范围内的最佳解决方案。
我有两个纯文本文件。虽然 file1 有一个用户名列表,但 file2 有来自这些用户和其他人的 Twitter 帖子。推特帖子只是作为纯文本推送到文件中。
对于每个用户,如果存在帖子,我必须提取帖子中使用的所有不同主题标签 (假设主题标签是整数,每篇文章仅限于一行)。
这是我选择的数据结构
Map<String, LinkedHashSet<Integer>> usernames = new HashMap<>();
我解决问题的方法
- 读取 file1 以填充用户名键,将默认值设为 null。
- 按顺序读取 file2,类似于 post = file2.readLine()
- 如果帖子中的用户名在 hashMap 键中找到,则将帖子中发现的所有主题标签添加到值 Set。
对于 100 万用户(文件 1)和 1000 万个帖子(文件 2)来说,这种方法和选择的数据结构听起来像是一个好方法吗?
【问题讨论】:
-
如果你不局限于内置的数据结构,你可以研究一个番石榴多图plus.google.com/118010414872916542489/posts/djYfMk5daXz
标签: java performance data-structures file-io