Android 将数组用作公共数组以保存随机数生成
我想生成不重复的随机数,我得到了这个代码Android 将数组用作公共数组以保存随机数生成,android,arrays,random,Android,Arrays,Random,我想生成不重复的随机数,我得到了这个代码 ArrayList<Integer> numbers = new ArrayList<Integer>(); Random randomGenerator = new Random(); int random = randomGenerator.nextInt(16)+1; if (!numbers.contains(random)) { numbers.add(ran
ArrayList<Integer> numbers = new ArrayList<Integer>();
Random randomGenerator = new Random();
int random = randomGenerator.nextInt(16)+1;
if (!numbers.contains(random))
{
numbers.add(random);
}
ArrayList number=new ArrayList();
Random randomGenerator=新的Random();
int random=randomGenerator.nextInt(16)+1;
如果(!number.contains(随机))
{
数字。添加(随机);
}
我想用这段代码生成一个随机id来选择从数据库中显示哪个问题。当我回答这个问题时,它应该是生成一个新的随机id。但是如果我使用了上面的所有代码,数组将成为一个新的数组,它将不知道以前生成了什么id
如果我把ArrayList number=new ArrayList()在onCreate
和public int random()
中的其他代码中,中的数字
无法读取我在onCreate
上创建的数组
我想问,我是否可以将ArrayList
创建为一个公共数组,因此我只需在onCreate
方法上声明一次,整个类就可以使用这个数组。您可以在onCreate方法外声明ArrayList,并在该方法内初始化它。
然后在你的活动中愉快地使用它
那么这个,
ArrayList<Integer> numbers = new ArrayList<Integer>();
可以放在onCreate方法中将数组与处理数组分开声明,例如作为全局类1
public class ClassName {
ArrayList<Integer> name;
@Override
public void onCreate(...){
name = new ArrayList<Integer>();
}
public void yourMethod(...){
//your operations
}
}
公共类类名{
ArrayList名称;
@凌驾
创建时的公共无效(…){
name=新的ArrayList();
}
公共方法(…){
//你的行动
}
}
这样,您就可以保留阵列。我不会创建公共数组,因为如果将其定义为全局和私有,则可以从整个类访问它。如果要从包中的其他类获得访问权限,只需创建常用方法:
public ArrayList<Integer> getArrayList(){
return name;
}
public ArrayList getArrayList(){
返回名称;
}
顺便说一句,我会使用Set
来解决这个问题,因为它不允许您添加重复的项,所以您可以去掉多余的if语句。是的,您可以,为什么要问?如何?当我使用ArrayList number=new ArrayList()时;在onCreate中,我想使用另一个void中的数组,它表示数字无法解析。。如何解决?设置是什么意思我也做了一个版本。
public ArrayList<Integer> getArrayList(){
return name;
}