0

我想使用 java 代码将文本文件中的用户 ID 映射到唯一的整数值。我有一个大约 50MB 的大文本文件,以传统方式执行此操作将花费我很多时间,例如

     3245 4567
      3245 8726
      4567 8363
      4567 7363
      4567 5267 etc
  After mapping I want my output file to look like
     1 2
     1 3
     2 4
     2 5
     2 5
4

1 回答 1

2

尝试使用HashMap<String, Integer>(请参阅HashMap),其中整数是每次遇到新 ID 时递增的计数器。您实际上将拥有 ID 字符串到整数的映射,因此从那里处理文本应该非常容易。因此,您的预期运行时间为 O(n)。

或者,您也可以尝试使用String.getHashCode(). 如果您有大约 10000 个 ID,那么发生冲突的可能性只有 1%。如果你有更少的概率急剧下降。

由于您还声明要保留排序,因此LinkedHashMap是完美的。当您对其进行迭代时,顺序与插入顺序相同。

于 2013-10-21T18:19:32.003 回答