0

这是我第一次真正的 Java 尝试,在一个 android 活动中。

代码基于起点countStart 和终点count1 进行计数。我没有包含整个类,但是在 toString 之后,它会创建一个文本视图并显示从数组生成的字符串(显然我猜...)

它根据需要多少个插槽在逻辑上构建一个数组,我不想让数组太大,因为最后会输出一个零。

有人能告诉我如何让这段代码更有效率吗?(更少的行,更少的混乱,更快,更少的内存使用)

//get the message from the intent
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    //convert string to double
    double count1 = Double.parseDouble(message);
    //declare variables and arrays
    double[] countArray;
    double countStart = 3.5;
    //initialize array with exact number of elements needed
    countArray = new double[((int) (count1-countStart)) +1];

    //counts from countStart to count1 without going over count1
    for(double i=0; i<(((int) count1-countStart) + 1); i++) {
        if ((countStart+i)>count1) {
            break;
        } else {
            countArray[((int) i)] = countStart+i;
        }

    }

    //convert array to string
    String mensage = Arrays.toString(countArray);
4

1 回答 1

1

作为一个基本的经验法则,你计算的任何东西都会将它保存到一个变量中。这使事情看起来更简单,并防止计算多次运行。

double count1 = Double.parseDouble(message);
double countStart = 3.5;

int resultCount = (int)(count1 - countStart) + 1;
double results = new double[resultCount];

for(double i = 0; i < resultCount; ++i) {
    double result = countStart + i;
    if (result > count1) {
        break;
    } else {
        results[i] = result;
    }
}
于 2013-04-22T00:41:02.653 回答