Java 需要2个不生成相同整数的整数生成器

Java 需要2个不生成相同整数的整数生成器,java,random,Java,Random,如何使2个随机整数生成器不生成相同的整数?假设程序运行,我的示例类如下。谢谢你的帮助 public class TestRandom{ int num; public TestRandom(){ num = 0; } public TestRandom(int x){ num = x; } public String toString(){ String print; if (nu

如何使2个随机整数生成器不生成相同的整数?假设程序运行,我的示例类如下。谢谢你的帮助

public class TestRandom{
    int num; 

    public TestRandom(){
        num = 0;
    }
    public TestRandom(int x){
        num = x;
    }
    public String toString(){
        String print;
        if (num == 1)
            print = "1";
        else if(num == 2)
            print = "2";
        else
            print = "---";
        return print;
    }
}

public class Test{
    TestRandom[] s= new TestRandom[20];
    Random ran = new Random();
    public void setArray(){
        for(int i=0; i<s.length; i++)
            s[i] = new TestRandom();

        for(int k=0; k<4; k++)
            int RandomNum = ran.nextInt(s.length);
        s[RandomNum] = new TestRandom(1);

        for(int e=0; e<4; e++)
            int RandomNum = ran.nextInt(s.length);
        s.[RandomNum] = new TestRandom(2);
    }
}
公共类TestRandom{
int-num;
公共TestRandom(){
num=0;
}
公共TestRandom(intx){
num=x;
}
公共字符串toString(){
字符串打印;
如果(num==1)
print=“1”;
else if(num==2)
print=“2”;
其他的
print=“--”;
返回打印;
}
}
公开课考试{
TestRandom[]s=新的TestRandom[20];
Random ran=新的Random();
公共void setArray(){
对于(inti=0;i试试这个

import java.util.Random;    
public class TestRandom{
     int num=0; 
     int num2=0;
     Random ran = new Random();
     num = ran.nextInt();
     num2 = ran.nextInt();
     System.out.print(num+" "+num2);
}
  • 如果你让两个生成器生成的不是同一个数,那么它就不是随机的

  • 如果您仍然想要该功能,请使用单个实例,并且如果生成的第二个数字与前一个相同,请生成另一个数字


  • 请注意,随机性和唯一性实际上并不同时存在。

    将生成的每个int添加到一个集合中

    检查生成的每个int,查看该int是否存在于集合中

    如果是,则生成一个新的int

    e、 g

    公共类测试{
    TestRandom[]s=新的TestRandom[20];
    Random ran=新的Random();
    公共void setArray(){
    
    对于(int i=0;i1),对代码块使用一致的逻辑缩进。代码缩进旨在帮助人们理解程序流程。2)为了早日得到更好的帮助,我修改了一点你的格式。请考虑在将来做些类似的事情。这样我们就可以轻松地处理你的代码了。谢谢你帮我格式化。我会记住它以备将来的引用。那个代码是如何执行“不生成同一个整数”的。?它可能会生成相同的整数。我只是给出一个想法,让Phong思考如何使整数在“评论或回答”的滑动比例中不相同。我认为这更适合“评论”,因为它无法解决老年退休金问题的一个重要部分。当然,你还没有足够的代表发表评论,但请耐心。即使这是我的专业建议编程技巧,谢谢你的回答。User217
    public class Test{
        TestRandom[] s= new TestRandom[20];
        Random ran = new Random();
      public void setArray(){
        for(int i=0; i<s.length; i++)
          s[i] = new TestRandom();
    
        HashSet<Integer> usedInts = new HashSet<Integer>();
        for(int k=0; k<4; k++) {
          int RandomNum;
          do {
            RandomNum = ran.nextInt(s.length);
          } while (!usedInts.add(RandomNum)); // loop until RandomNum not duplicated
          s[RandomNum] = new TestRandom(1);
        }
        for(int e=0; e<4; e++) {
          int RandomNum;
          do {
            RandomNum = ran.nextInt(s.length);
          } while (!usedInts.add(RandomNum)); // loop until RandomNum not duplicated
          s.[RandomNum] = new TestRandom(2);
        }
      }