Android将字符串加载到数组中

时间:2011-11-19 18:53:27

标签: android arrays string text load

我有1000个单词的列表。我需要从该列表中加载一个带有n个随机选择的单词的数组(不允许重复)。这样做的最佳方式是什么?

我的想法:

1)将单词加载到R.arrays中以创建String数组。使用collections.shuffle对数组进行洗牌,然后从中拉出前n个条目。现在,我正在使用这种方法将初始数组加载1000个单词时出现内存问题。

2)将单词加载到文本文件中,将每个单词读入String数组。使用相同的方法获得前n个条目。

3)硬编码将单词输入到String数组中(当然我用脚本来获取输出)。使用相同的方法获得前n个条目。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您主要担心内存使用情况并且您愿意放弃计算速度,那么这里有一个可以帮助您实现的算法。

将单词保存在一个文本文件中,每行一个单词,每个单词使用固定数量的字符,在末尾用空格填充每个单词以确保固定单词字符大小,称之为s。< / p>

  1. 创建一个最大尺寸n的数组,称之为w
  2. 将流阅读器打开到包含1000个字的文件
  3. 获取1到1000之间的随机数,称之为k
  4. 寻找文件流中的k*s位置并抓取下一个s个字符
  5. 如果数组中不存在<{1}}
  6. ,请将其添加到w
  7. 如果w数组已满(即尺寸= n),我们就完成了,否则请回到第3步
  8. 让我们知道它是怎么回事。快乐的编码!