我正在为安卓设备制作一个应用程序。我的应用程序中有一个函数,它有 2 个“for 循环”,每个循环 3200 次,访问一个 53 KB 的 .txt 文件(包含 3200 行)并将字符串与每一行进行比较,每次迭代一行。“for 循环”还包含 BufferedReader()、InputStreamReader()、InputStream() 和 StringTokenizer()。因此,当我在模拟器上运行应用程序时,它处理该功能大约需要 8 秒。这是不可接受的。如何将所需的时间减少到半秒或最多。1秒?谢谢!编辑:这是我的程序的一部分,带有 2 个 for 循环:
else if(a==2){
String z="";
try{
InputStream is = getAssets().open("USCOUNTIES.txt");
InputStreamReader iz=new InputStreamReader(is);
BufferedReader bis = new BufferedReader(iz);
int v=0;
v=count("USCOUNTIES.txt");//counts number of lines in the .txt file
//finding no. of counties to be displayed
int counter=0;
String pos;
pos=Integer.toString(position);
try{
for(int i=0;i<v;i++){
z=bis.readLine();
//int x=pos.length();
boolean a;
//using stringtokenizer
StringTokenizer st = new StringTokenizer(z, ",");
String substring;
substring=(String) st.nextElement();
a=substring.equals(pos);
if(a==true){
counter=counter+1;
}
}}catch(Exception e){e.printStackTrace();}
String array1[]=new String[counter];
try{
InputStream ig = getAssets().open("USCOUNTIES.txt");
InputStreamReader ia=new InputStreamReader(ig);
BufferedReader bos = new BufferedReader(ia);
int j=0;
for(int i=0;i<v;i++){
z=bos.readLine();
String[] split = z.split(",");
if(split[0].equals(pos)){
array1[j]=split[1];
j=j+1;
}
}}
catch(Exception e){e.printStackTrace();}