我有1000个单词的列表。我需要从该列表中加载一个带有n个随机选择的单词的数组(不允许重复)。这样做的最佳方式是什么?
我的想法:
1)将单词加载到R.arrays中以创建String数组。使用collections.shuffle对数组进行洗牌,然后从中拉出前n个条目。现在,我正在使用这种方法将初始数组加载1000个单词时出现内存问题。
2)将单词加载到文本文件中,将每个单词读入String数组。使用相同的方法获得前n个条目。
3)硬编码将单词输入到String数组中(当然我用脚本来获取输出)。使用相同的方法获得前n个条目。有更好的方法吗?
答案 0 :(得分:1)
如果您主要担心内存使用情况并且您愿意放弃计算速度,那么这里有一个可以帮助您实现的算法。
将单词保存在一个文本文件中,每行一个单词,每个单词使用固定数量的字符,在末尾用空格填充每个单词以确保固定单词字符大小,称之为s
。< / p>
n
的数组,称之为w
k
k*s
位置并抓取下一个s
个字符w
w
数组已满(即尺寸= n
),我们就完成了,否则请回到第3步让我们知道它是怎么回事。快乐的编码!