2012-11-30 67 views
1

现在作为我的Android应用程序的一部分,我有一个.csv文件,其中包含存储在手机的SD卡上的15000行。每次启动应用程序时,都会将这15,000行读入两个并行阵列。我为3个文件这样做总共有6个数组,每个存储15,000个元素。我需要快速搜索这些项目,同时保持秩序。搜索大量的订购字符串

我担心如果我保持代码的方式,我会开始在手机上耗尽内存并导致应用程序崩溃。如果使用readline来搜索csv文件而不是将每个数组的整体读入数组列表,那么速度会更快吗?所以我不会遇到内存问题?在维持秩序的同时有没有更好的方法来做到这一点?

在SD卡上的内容为以下形式:

New York, test1 
New Jersey, test2 
Colorado, test3 
Arkansas, test4 
New York, test5 
etc.. 

回答

1

-如果你想使用阵列进行搜索,那么它最好转换arrayList使用Arrays.asList()方法和然后用的方法来搜索数据。

-另一种方式来做到这一点,将使用SQLite DataBase

+0

相反转换数组列表不能我只是列出了开始的?使用列表有什么好处? – Peter

+0

@Peter如果你可以从List开始,这将是最好的,因为使用** java中的Collection框架给出比Array **更大的灵活性。对于初学者来说,我会给你List最常见的好处,就是'当我们初始化它时,我们不需要提及List的大小,并且可以从列表中动态添加,删除..等等。' –

+0

I已经在使用一个ArrayList有很大的区别?请原谅我缺乏知识 – Peter

5

我想一个更好的解决办法是将它们存储在SQLite数据库和查询时使用ORDER BY,你需要什么样的数据只查询在那一刻。