for (int i = 0; i < paraLen; i++) {
      String index = String.valueOf(i);
      
      //out.print(ia[i]+":"+ib[i]+":"+ic[i]+"<br>");
      paraStr += "<param name = \"ia" + index + "\" value=\"" + ia[i] + "\">\n";
      paraStr += "<param name = \"ib" + index + "\" value=\"" + ib[i] + "\">\n";
      paraStr += "<param name = \"ic" + index + "\" value=\"" + ic[i] + "\">\n";
      paraStr += "<param name = \"va" + index + "\" value=\"" + va[i] + "\">\n";
      paraStr += "<param name = \"vb" + index + "\" value=\"" + vb[i] + "\">\n";
      paraStr += "<param name = \"vc" + index + "\" value=\"" + vc[i] + "\">\n";
      paraStr += "<param name = \"yg" + index + "\" value=\"" + yg[i] + "\">\n";
      paraStr += "<param name = \"wg" + index + "\" value=\"" + wg[i] + "\">\n";
      paraStr += "<param name = \"yz" + index + "\" value=\"" + yz[i] + "\">\n";
      paraStr += "<param name = \"wz" + index + "\" value=\"" + wz[i] + "\">\n";
      paraStr += "<param name = \"yf" + index + "\" value=\"" + yf[i] + "\">\n";
      paraStr += "<param name = \"wf" + index + "\" value=\"" + wf[i] + "\">\n";
      // System.out.println(va[i]);
    }
就是这样一个for循环,ParaLen最大为96,执行时间居然要一秒多,那位能给我优化一下吗?
其中那些数组(如ia ib ic .....)是float数组。

解决方案 »

  1.   

    这个不是for循环的效率问题,而是String的 + 效率比较低,你可以用StringBuffer,那样效率回高很多。
    String 是一个“不可改变”对象,你每做一次"+"动作都需要创建一个新的String对象。
      

  2.   

    StringBuffer paraStr;
    for (int i = 0; i < paraLen; i++) {
          //String index = String.valueOf(i);
          
          //out.print(ia[i]+":"+ib[i]+":"+ic[i]+"<br>");
          paraStr.append("<param name = \"ia" + i + "\" value=\"" + ia[i] + "\">\n");
          paraStr.append("<param name = \"ib" + i + "\" value=\"" + ib[i] + "\">\n");
          paraStr.append("<param name = \"ic" + i + "\" value=\"" + ic[i] + "\">\n");
          paraStr.append("<param name = \"va" + i + "\" value=\"" + va[i] + "\">\n");
          paraStr.append("<param name = \"vb" + i + "\" value=\"" + vb[i] + "\">\n");
          paraStr.append("<param name = \"vc" + i + "\" value=\"" + vc[i] + "\">\n");
          paraStr.append("<param name = \"yg" + i + "\" value=\"" + yg[i] + "\">\n");
          paraStr.append("<param name = \"wg" + i + "\" value=\"" + wg[i] + "\">\n");
          paraStr.append("<param name = \"yz" + i + "\" value=\"" + yz[i] + "\">\n");
          paraStr.append("<param name = \"wz" + i + "\" value=\"" + wz[i] + "\">\n");
          paraStr.append("<param name = \"yf" + i + "\" value=\"" + yf[i] + "\">\n");
          paraStr.append("<param name = \"wf" + i + "\" value=\"" + wf[i] + "\">\n");
          // System.out.println(va[i]);
        }
    String para=paraStr.toString();