Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数组用作公共数组以保存随机数生成_Android_Arrays_Random - Fatal编程技术网

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;
}