Хорошо, я новичок в программировании Android, но я создал приложение следующим образом.
package com.michaelpeerman.probability;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Random;
public class ProbabilityActivity extends Activity
{
private EditText number;
private Button submit;
public void flipcoin(int numberint)
{
TextView result = (TextView)findViewById(R.id.result);
int heads = 0;
int tails = 0;
for (int j = 0; j < numberint; j++)
{
int i = 1 + new Random().nextInt(2);
if (i == 1)
heads++;
if (i == 2)
tails++;
result.setText("heads : " + heads + "\ntails : " + tails);
}
}
public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(R.layout.main);
submit = ((Button)findViewById(R.id.submit));
submit.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramView)
{
number = ((EditText)findViewById(R.id.number));
int numberint = Integer.parseInt(number.getText().toString());
flipcoin(numberint);
}
});
}
}
Но это работает невероятно медленно по сравнению с
package com.michaelpeerman.probability;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Random;
public class ProbabilityActivity extends Activity
{
public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(R.layout.main);
TextView result = (TextView)findViewById(R.id.result);
int heads = 0;
int tails = 0;
for (int j = 0; j < 50000; j++)
{
int i = 1 + new Random().nextInt(2);
if (i == 1)
heads++;
if (i == 2)
tails++;
result.setText("heads : " + heads + "\ntails : " + tails);
}
}
Я не понимаю, почему это так. Они оба используют один и тот же код, за исключением того, что первый позволяет ввести число и нажать «Отправить» перед запуском цикла.
Разве они не должны быть одинаковой скоростью? Что я могу сделать, чтобы ускорить его?