Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Java 若要查看是否已生成下一个随机数,如果已生成,请放弃该随机数并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有生成任何重复项。您的测试#1在运行时必须引发异常。不知怎的,这被吞没了,你最终还是看到了旧的输_Java_Arrays_List_Collections_Random - Fatal编程技术网

Java 若要查看是否已生成下一个随机数,如果已生成,请放弃该随机数并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有生成任何重复项。您的测试#1在运行时必须引发异常。不知怎的,这被吞没了,你最终还是看到了旧的输

Java 若要查看是否已生成下一个随机数,如果已生成,请放弃该随机数并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有生成任何重复项。您的测试#1在运行时必须引发异常。不知怎的,这被吞没了,你最终还是看到了旧的输,java,arrays,list,collections,random,Java,Arrays,List,Collections,Random,若要查看是否已生成下一个随机数,如果已生成,请放弃该随机数并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有生成任何重复项。您的测试#1在运行时必须引发异常。不知怎的,这被吞没了,你最终还是看到了旧的输出。您是否在某种web应用程序中运行此功能(我注意到“”?)直接从命令行运行会更好。由于范围为1-12,因此可能会出现一些重复。想给我们展示一下你是如何将它们随机化的吗?@asgs-编辑了一篇文章,添加了一些我已经写过的代码tried@katu



若要查看是否已生成下一个随机数,如果已生成,请放弃该随机数并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有生成任何重复项。您的测试#1在运行时必须引发异常。不知怎的,这被吞没了,你最终还是看到了旧的输出。您是否在某种web应用程序中运行此功能(我注意到“
”?)直接从命令行运行会更好。由于范围为1-12,因此可能会出现一些重复。想给我们展示一下你是如何将它们随机化的吗?@asgs-编辑了一篇文章,添加了一些我已经写过的代码tried@katura,就像我说的1-12是一个很小的范围,会有重复的。您可以做的是检查下一个随机数是否已经生成,如果已经生成,则放弃它并继续再次生成,直到全部生成完成。版本测试#1对我来说很好(在通过对象[]交换字符串[]之后),并且没有产生任何重复项。您的测试#1在运行时必须抛出异常。不知怎的,这被吞没了,你最终还是看到了旧的输出。您是否在某种web应用程序中运行此功能(我注意到“
”?)直接从命令行运行会更好。我也尝试过这种方法…我现在将在我的帖子中附加一段测试代码。从字符串[]更改为Ojbect[]在我的测试片段中得到了我想要的结果。@katura有什么原因吗?我也尝试过这个方法…我现在将在我的帖子中附加一个测试代码片段。在我的测试片段中从字符串[]更改为Ojbect[]得到了我想要的结果。@katura有什么原因吗?我跟随了你帖子中的链接,该方法给出了我想要的结果。我希望我也能把你的答案标记为“正确”!我关注了你帖子中的链接,这种方法给了我想要的结果。我希望我也能把你的答案标记为“正确”!有趣…一些我以前从未尝试过的东西,谢谢你发布。有趣…一些我以前从未尝试过的东西,谢谢你发布。创建一个坏的比较器是一个非常糟糕的主意,没有必要;只需使用用于此目的的库(Collections.shuffle())。@kevin bourrillion为什么?你能提供你的理由和他们的来源吗?这真的不是很明显,它是更好的只是调用
洗牌
,而不是编写所有的代码?创建一个坏的比较器是一个非常坏的主意,没有必要;只需使用用于此目的的库(Collections.shuffle())。@kevin bourrillion为什么?你能提供你的理由和他们的来源吗?这真的不是很明显,最好只调用
shuffle
,而不是编写所有的代码?如果他想要的数字少于n个,这将非常有用[m,m+n)。当然,使用像LinkedHashSet这样的保序集。如果他希望[m,m+n]范围内的数字少于n,这将非常有用。当然,使用像LinkedHashSet这样的保序集。
ArrayList<Integer> list = new ArrayList<Integer>(10);
for(int i = 0; i < 10; i++)
{
  list.add(i);
}
Collections.shuffle(list);

String[] randomNumbers = (String[])list.toArray();

for(int i = 0; i < 10; i++)
{
  out.print(randomNumbers[i]+"<br>");
}
int max = 12;
int min = 1;

int randomNumber = 0;

String str_randomNumber = "";

for(int i=0; i<10; i++) {
    //int choice = 1 + Math.abs(rand.nextInt(11));
    int choice = min + (int)(Math.random() * ((max - min) + 1));

    out.print("chose = "+choice+"<br>");
}
List<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 12; i++) {
    list.add(i);
}

Collections.sort(list, new Comparator<Integer>() {

    @Override
    public int compare(Integer o1, Integer o2) {
          return Math.random() > 0.5 ? 1 : -1;
    }
);
Integer[] array = list.toArray(new Integer[list.size()]);
public static int randomInteger(int min, int max) {
    Random rd = new Random();
    return rd.nextInt((max - min) + 1) + min;
}
public static Set<Integer> makeRandomSet(int howManyNumber, int startNumber, int endNumber){
    Set<Integer> integerSet = new HashSet<>();

    boolean couldBeAdded = false;
    for(int i=0; i< howManyNumber; i++) {
        while (!couldBeAdded) {
            Integer randomInt = randomInteger(startNumber, endNumber);
            couldBeAdded = integerSet.add(randomInt);
        }

        couldBeAdded = false;
    }

    return integerSet;
}
public static void main(String[] args) {
    Set<Integer> randomSet = makeRandomSet(6, 1, 54);
    System.out.println(randomSet);
}