什么是更有效,更大的条件,还是庞大的阵列?

时间:2017-04-14 16:13:19

标签: java android performance

在我的应用程序中,我有两个片段,每个片段都有一个存储2160个变量的三维数组,其中720个是浮点数,1440个是整数。

我有两个选择: 1 - 继续使用这个巨大的立体阵列。 2 - 或做一个巨大的条件。

我关心的是应用程序在用户手机上的性能。哪个会消耗更少的时间?这个数组使用的内存是否足以影响片段加载?

备注

  • 在我的应用中,所有这些变量都是常量值。
  • 用户将回答一系列问题,最后显示一些变量。
  • 有三个问题:

    1. 有6个选项
    2. 有15个选项
    3. 有8个选项

但我有3个系列的这个问题,其中一个我显示浮动变量。在另外两个中,我显示整数变量。

实际上,这是我的代码。 RESULTS_ARRAY[][][]它是一个大的三维数组,我只是代码的一部分,处理720浮点值的部分。

switch (rewardSelected) {
     case 0:
          int count = 0;
          while (count < 6) {
          if(typePack == count) {
               int count2 = 0;
               while(count2 < 15) {
                    if(spinnerSelected == count2) {
                         int count3 = 0;
                         while(count3 < 8) {
                              float percent = Float.parseFloat(editTextPercent.getText().toString());
                              float withPercentApplied = (RESULTS_ARRAY[count][count3][count2] * percent) / 130;
                              if(checkFivePercent.isChecked()) {
                                   float resultFinal = ((withPercentApplied*5) / 100) + withPercentApplied;
                                   textViewResults.get(count3).setText(String.valueOf(resultFinal));
                              } else {
                                   textViewResults.get(count3).setText(String.valueOf(withPercentApplied));
                              }
                              count3++;
                         }
                    }
                    count2++;
               }
          }
          count++;
     }
          break;
     case 1:
          break;
     case 2:
          break;
}

1 个答案:

答案 0 :(得分:1)

为了完整起见,这就是你所需要的。

package so;

import java.io.FileNotFoundException;
import java.io.FileReader;

import com.google.gson.*;

public class SOCLass{

     JsonElement job;

     SOCLass(){
         try {
            job = new JsonParser().parse(new FileReader("JSON FILE"));
        } catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     }

     boolean isValuePresent(final String v){
         return job.getAsJsonObject().get(v) != null;
     }

     public static void main(String[] args){
         SOCLass so = new SOCLass();
         System.out.println("Is present? " + so.isValuePresent("NO"));
     }

}

修改

json文件中的数组内容:

{
  "key" : null,
  "key1" : null
}

如果你只关心常数值/标签。然后,您可以将实际值与其键

相关联