Java 如何将数据放入整数数组

Java 如何将数据放入整数数组,java,arrays,random,Java,Arrays,Random,我对Android和java都是新手。在我的应用程序中,我需要的正是随机数。这将不再重复 例如,假设我有一个文本视图和一个点击按钮的按钮,它应该显示随机数,这些随机数不应该重复 为此,我想将随机数据存储到数组中,并检查随机数是否在数组中。如果随机数不在数组中,它将暂时存储该数字。就像第一次单击时,它会显示一些随机数,如介于1-20之间的数字,比如它选择了5,现在,该值应存储到数组中,单击“下一步”按钮,如果再次出现5个数字,则应跳过该数字 关于这一点,请帮助我,创建一个按顺序排列数字的数组。然后

我对Android和java都是新手。在我的应用程序中,我需要的正是随机数。这将不再重复

例如,假设我有一个文本视图和一个点击按钮的按钮,它应该显示随机数,这些随机数不应该重复

为此,我想将随机数据存储到数组中,并检查随机数是否在数组中。如果随机数不在数组中,它将暂时存储该数字。就像第一次单击时,它会显示一些随机数,如介于1-20之间的数字,比如它选择了5,现在,该值应存储到数组中,单击“下一步”按钮,如果再次出现5个数字,则应跳过该数字


关于这一点,请帮助我,

创建一个按顺序排列数字的数组。然后使用该算法生成唯一的、不重复的随机序列

// Fisher-Yates shuffle.
Random random = new Random();
int[] data = new int[20];
for (int i=0; i<20; i++)
{
  data[i] = i;
}
for (int i=0; i<20; i++)
{
  int j = random.nextInt(20);
  int t = data[i];
  data[i] = data[j];
  data[j] = t;
}
//费希尔·耶茨洗牌。
随机=新随机();
int[]数据=新的int[20];

对于(inti=0;i我认为这个问题与Java有关,而不是与Android有关


如果您只需要创建一小组唯一的随机数,则可以将生成的数存储在地图中,以便在O(1)中确定如果以前生成过数字。如果以前没有生成过,请使用该数字并将其放入地图中。否则,请创建一个新的数字并重复。

您应该首先创建一个实例。这将为您生成随机数。然后您应该将所有已生成的数字保留在
ArrayList
中,以便跟踪生成的数字到目前为止的数字

Random mRandom=new Random();
//Generate first number, int [0,20)
int no=mRandom.nextInt(20);
//keep that number
ArrayList<Integer> mGeneratedSoFar=new ArrayList<Integer>();
mGeneratedSoFar.add(no);
编辑:正如@Guido Garcia所说,你可以将你的数字保存在其他类型的
集合
地图
中,以获得更好的性能。但只要你生成的数字很少,我认为这不会成为问题。

java.util.Random generator;
java.util.Random generator;    
java.util.Set<Integer> nums;
nums.add(generator.nextInt(20));
java.util.Set nums; 新增数量(发电机nextInt(20));
<代码> > p>讨论数据结构以存储生成的随机查询用于存储唯一的一组数字。 代码:
int max=20;
System.out.println(“生成0..+max范围内的随机整数);
Set Set=新哈希集(最大值);
Random randomGenerator=新的Random();

while(set.size()无法对非静态方法nextInt(int)进行静态引用从类型随机ooooo谢谢先生,它对我非常有用。真的你救了我一天。谢谢你,
Set。add
将返回
false
,如果要添加的项目已经包含在
Set
中。它不允许你添加重复的项目。你能给我举个例子吗,我的朋友。正如你所说的,你能解释一下怎么做吗举个例子。这将是一个很好的帮助
java.util.Random generator;    
java.util.Set<Integer> nums;
nums.add(generator.nextInt(20));
int max = 20;
System.out.println("Generating random integers in range 0.." + max);
Set<Integer> set = new HashSet<Integer>(max);
Random randomGenerator = new Random();
while (set.size() <= max) {
  int randomInt = randomGenerator.nextInt(max+1);
  System.out.println("Generated : " + randomInt);
  if (!set.add(randomInt))
      System.out.println("Set already has: " + randomInt);
}
System.out.println("Set has: " + set);