[基本上,我需要生成5个随机数,每次生成它们时都是唯一的(因此它们不会重复),然后将它们输出到TextView。
我设法生成了5个数字,但是,它们并非一直都是唯一的,这意味着有时在按下按钮生成这些数字时,相同的数字会出现两次或多次。
这是到目前为止我得到的:
import androidx.annotation.IntegerRes;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private TextView numbersGenerated;
private Button btnGenerate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
numbersGenerated = findViewById(R.id.numbers);
btnGenerate = findViewById(R.id.btnGenerate);
btnGenerate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<Integer> arrayRandom = new ArrayList<>();
Random rand = new Random();
for (int i = 0; i < 5; i++)
{
Integer r = rand.nextInt(50) + 1;
arrayRandom.add(r);
}
numbersGenerated.setText(arrayRandom.toString());
}
});
}
}
我不确定我可以进行哪种类型的验证,因为这是我第一次接触Java,因此可以提供任何帮助。
而不是
ArrayList<Integer> arrayRandom = new ArrayList<>();
使用一组
Set<Integer> set = new HashSet<>();
然后做一个
while (set.size() < 5) {
set.add(rand.nextInt(50) + 1);
}