2012-08-15 44 views
0

我想从一个大列表(大约1000个条目)中随机选取一个条目。在我的应用中保留这个大列表的最佳方式是什么?我应该把它放到一个大的字符串数组中吗?试图随机选择一个字符串时,它会减慢我的程序吗? 谢谢!在android中的大列表?

+0

如何使用SQLite数据库?比将1000个条目加载到RAM中好得多! – 2012-08-15 15:06:39

+0

您可以将它保存在SQLite数据库中。 – KoVadim 2012-08-15 15:07:14

+0

好的,谢谢!我从来没有使用SQLite数据库之前,所以我要去查看如何 – Hockeyman271 2012-08-15 15:08:14

回答

4

首先,1000个字符串不是特别大的数组大小。这是否是很多内存取决于字符串是否很长。

至于随机挑选一个,元素的数量根本不应该是一个因素,因为选择一个元素需要多长时间。只需生成一个0到1000之间的随机整数(排除),然后从该索引处选取一个整数。

Random random = new Math.Random(); // done once only 

int randomIndex = random.nextInt(1000); // each time you need an index 
+0

好吗完美!我将可能有5个不同的列表1000个条目,你不认为简单地让应用程序上的这些字符串数组将会减慢速度?对不起,我是新手,所以我不确定 – Hockeyman271 2012-08-15 15:12:43

+0

@ Hockeyman271 - 除非你的字符串非常长,否则其中的5,000个不会成为问题。什么是平均字符串长度? – 2012-08-15 15:14:03

+0

每个列表大约700个 – Hockeyman271 2012-08-15 15:22:42

0

如果我们说说整数和短字符串,1000个条目不是一个大的列表,如果它的复杂对象我真的很喜欢OrmLite数据库持久性。