我有一个包含3000万个用户ID的大文件。这个大文件看起来像这样,每一行都有一个用户ID。
149905320
1165665384
66969324
886633368
1145241312
286585320
1008665352
1135545396
186217320
132577356
现在,我计划从那个大文本文件中获取任意一行。我知道那个大文本文件中用户ID的总数。但我不确定如何最好地从那个大文本文件中选择随机元素。我考虑将所有这三千万个用户ID存储在一个集合中,然后从哈希集合中随机选择元素,但是使用这种方法会出现内存不足错误。
因此,我尝试从一个大文本文件中随机选择元素。
final String id = generateRandomUserId(random);
/**
* Select random elements from the a big text file
*
* @param userIdsSet2
* @param r
* @return
*/
private String generateRandomUserId(Random r) {
File bigFile = new File("C:\\bigfile.txt");
//randomly select elements from a big text file
}
如何最好地完成这个任务?